Handling mit 2D-Arrays

PHANTOMIAS

Aktives Mitglied
Hallo an alle!

Ich hänge an folgendem Problem. Ich habe ein Array dieser Art:
Java:
int[][] testArray = new int[100][100];
// Füllen mit Werten, hier ausgelassen, da nicht relevant

Nun will ich das Array "stückweise" verarbeiten lassen. Dazu habe ich eine Methode geschrieben, die folgendermaßen aussieht (die ein 2D-Array mit 10x10 Werten verarbeiten kann):
Java:
public int[][] myFunction(int[][] arrayToCalc) {
    // Berechnungen auf dieses Array mit der Größe 10x10 und Rückgabe
    return arrayToCalc;
}

Nun habe ich das Problem, dass ich das 100x100 Array in 10x10 Blöcke teilen muss um der Methode zu übergeben und dann ich dieses 100x100 Array wieder zusammen bauen muss.

Wie macht man das geschickt? Ich könnte nun ein neues Array aufmachen mit 10x10 und die Werte aus dem 100x100 einlesen, übergeben an die Methode und wieder entgegennehmen und dann das in ein neues 100x100 Array einlesen. Aber das scheint mir doch arg umständlich?!

Was gibt es da für Möglichkeiten, wie kann ich das geschickt machen? (Das 100x100 Array kann darf überschrieben werden)

Danke für eure Hilfe + Gruß!
 

function

Bekanntes Mitglied
mal eben eine verständnis frage, du hast ein
100x100 array
und eine funktion die ein 10x10 array übergeben bekommen muss
gibt die funktion dann ein 10x10 array zurück oder ein neues 100x100 array?
oder sollen die blöcke im ursprungsarray überschrieben werden?
 

PHANTOMIAS

Aktives Mitglied
Danke für die schnelle Antwort. Zu deinen Fragen:

mal eben eine verständnis frage, du hast ein
100x100 array
und eine funktion die ein 10x10 array übergeben bekommen muss
richtig.
gibt die funktion dann ein 10x10 array zurück oder ein neues 100x100 array?
10x10 Array.
oder sollen die blöcke im ursprungsarray überschrieben werden?
Nein, direkt überschrieben werden können sie nicht, da die Methode überschreiben würde im Ursprungs-Array, die alten Werte aber noch weiterhin benötigt, also die Ursprungswerte.
Ist das verständlich was ich meine? Ich brauche kurz gesagt immer das übergebene 10x10-Array in seinem ganzen Ursprung und muss das in ein anderes Array schreiben und zurückgeben. Das war etwas ungenau von mir da ich
Code:
return arrayToCalc;
geschrieben habe, sorry!
 

Ziegenpeter

Aktives Mitglied
Nur der Info halber: Wieso kann deine Methode nur 10x10 Arrays verarbeiten? Ich versteh's nämlich erstmal nicht so recht. Vor allem, da dir die Teilung deines 100x100 Arrays egal zu sein scheint.

Außer dem Vorschlag den du selbst schon gegeben hast (neue 10x10 Arrays mit kopierten Werten) fällt mir da jetzt auch erstmal nichts schlaues ein. Außer natürlich du kannst von den Arrays abrücken.
 

PHANTOMIAS

Aktives Mitglied
Nur der Info halber: Wieso kann deine Methode nur 10x10 Arrays verarbeiten? Ich versteh's nämlich erstmal nicht so recht. Vor allem, da dir die Teilung deines 100x100 Arrays egal zu sein scheint.
Also, ich muss wohl doch ein wenig mehr ausholen, damit das verständlich wird. Die 10x10 Methode wurde nicht von mir geschrieben und beinhaltet "Bildverarbeitung". Diese muss stückeln, da nur mit kleinen Blöcken gerechnet wird, fragt mich aber nicht warum, ich bin nicht hinter diesen Algorithmus gekommen. Der ruft von dort aus mehrere Methoden rekursiv auf, ich kann ihn nicht umschreiben ohne Tage dafür zu investieren.

Deswegen will ich ihn einfach so nutzen, wie gegeben.

Außer dem Vorschlag den du selbst schon gegeben hast (neue 10x10 Arrays mit kopierten Werten) fällt mir da jetzt auch erstmal nichts schlaues ein. Außer natürlich du kannst von den Arrays abrücken.
Hmm, okay. Dachte da gibt es vielleich eine bessere Möglichkeit, da ich ja "per Hand" immer wieder durch das Array rennen muss, das erste Mal um es auf 10x10-Stücke zu bringen und am Schluss lese ich das zurückgegebene 10x10-Array wieder ein und setze es auf ein 100x100-Array. Klingt schrecklich umständlich, aber wenn es keine andere Lösung gibt, muss ich das wohl so machen.
 

Ziegenpeter

Aktives Mitglied
Also, ich muss wohl doch ein wenig mehr ausholen, damit das verständlich wird. Die 10x10 Methode wurde nicht von mir geschrieben und beinhaltet "Bildverarbeitung". Diese muss stückeln, da nur mit kleinen Blöcken gerechnet wird, fragt mich aber nicht warum, ich bin nicht hinter diesen Algorithmus gekommen. Der ruft von dort aus mehrere Methoden rekursiv auf, ich kann ihn nicht umschreiben ohne Tage dafür zu investieren.

Deswegen will ich ihn einfach so nutzen, wie gegeben.

Ist jetzt ein wenig Off-Topic, aber ich will's trotzdem kurz loswerden.
Wenn ihr was mit Bildverarbeitung macht klingt es recht komisch dafür ein Array zu benutzen. Da das eine Schul- bzw. Uniaufgabe zu sein scheint kannst du ja mal mit deinem Betreuer reden warum ihr das so macht. Als wir einen Raytracer in der Uni geschrieben haben wir zum "zerstückeln" z.B. kd-Trees genommen. Aber wie gesagt ist Offtopic und musst du natürlich nicht drauf eingehen :D
 

PHANTOMIAS

Aktives Mitglied
Nein, ich muss dich leider enttäuschen, ist keine Studien- oder Uni-Aufgabe, sondern privates Vergnügen (auch so etwas soll es noch geben ;)).
Ein Arbeitskollege von mir hat das mal vor Urzeiten geschrieben, ob das sinnvoll ist mit einem Array wage ich auch zu bezweifeln. Aber ich will es einfach nutzen und testen, deswegen ja meine Fragestellung daraufhin wie ich aus dem Gegebenen das Beste machen kann.
 

Ziegenpeter

Aktives Mitglied
Ok, da du also nicht völlig an die Methoden gebunden bist ein anderer Vorschlag.
Du erweiterst die myFunction-Methode um zwei int-Parameter, die dir row und column angeben. Dann hast du zwei Möglichkeiten. Willst du am Ende wieder ein 100x100 - Array haben füllst du dieses Arrays sofort anhand der übergebenen Parameter, ansonsten erstellst du neue 10x10 große Arrays. Damit ersparst du dir dann schonmal das ständige Umkopieren der Werte.
 

Marco13

Top Contributor
Wenn du einen 100x100-Array hast, und nur 10x10 Elemente pro stück verarbeiten willst, solltest du überlegen, ob du nicht lieber immer Arrays der Größe 1x100 an die Methode übergeben solltest. Von der Größe her wär's gleich, aber eben vieeel einfacher ;)

Ansonsten kannst du überlegen, ob man die Methode nicht ändern könnte zu
Code:
void berechne(int array[][], int minX, int minY, int sizeX, int sizeY)
- ihr also mitgeben, welchen 10x10-Ausschnitt aus dem 100x100-Array sie bearbeiten soll...
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
I JAX-RS Exception Handling Java Basics - Anfänger-Themen 4
T Übungsaufgabe Event Handling Java Basics - Anfänger-Themen 0
J Thread Handling Java Basics - Anfänger-Themen 9
M Exception Handling Java Basics - Anfänger-Themen 2
llabusch Exceotion.Handling Aufgabe mit "throw" Java Basics - Anfänger-Themen 13
U Threadsafe Event-Handling Java Basics - Anfänger-Themen 2
G Frage zu Exception-Handling Java Basics - Anfänger-Themen 5
U [Problem] Handling multiple frames Java Basics - Anfänger-Themen 5
T batch handling Java Basics - Anfänger-Themen 11
C Klassen NullPointerException beim Event Handling in GUI Java Basics - Anfänger-Themen 8
S Threads Handling multiple different Threads Java Basics - Anfänger-Themen 7
X JFrame als JAR unsichtbar trotz Exception Handling Java Basics - Anfänger-Themen 5
S Schlechter Stil beim Exception Handling Java Basics - Anfänger-Themen 6
S Exception-Handling in main-Funktion? Java Basics - Anfänger-Themen 6
S Exception Handling Java Basics - Anfänger-Themen 4
M Frage zu Exception Handling Java Basics - Anfänger-Themen 10
D Exception Handling Java Basics - Anfänger-Themen 3
Z csv Dateien und ihr Handling Java Basics - Anfänger-Themen 3
D OOP Exception Handling - NullPointerException Java Basics - Anfänger-Themen 17
N paint methode statt Event-Handling-Methode Java Basics - Anfänger-Themen 3
B Applet: Event-Handling-Methode in start- bzw. paint-Methode Java Basics - Anfänger-Themen 7
B jTextField handling in Berechnungsprogramm Diskussion Java Basics - Anfänger-Themen 4
M Exception handling Java Basics - Anfänger-Themen 5
J Event-Handling geht nicht Java Basics - Anfänger-Themen 6
T Exception-Handling beim Lesen einer XML-Datei mit XMLDecoder Java Basics - Anfänger-Themen 4
G Exception-Handling Java Basics - Anfänger-Themen 6
L Thread-Handling & Standard-Ausgabe verschönern Java Basics - Anfänger-Themen 7
D Thread Handling Java Basics - Anfänger-Themen 10
B Exception Handling in der ActionPerformed-Methode Java Basics - Anfänger-Themen 7
G start-oder paint-Methode anstatt Event-Handling-Methode? Java Basics - Anfänger-Themen 3
G GUI Event Handling Java Basics - Anfänger-Themen 5
T Exception Handling? Java Basics - Anfänger-Themen 6
N File-Handling Java Basics - Anfänger-Themen 4
A Exception Handling Fragen Java Basics - Anfänger-Themen 2
M Länge eines Arrays als Variable speichern möglich? Java Basics - Anfänger-Themen 14
R Liste und Arrays Java Basics - Anfänger-Themen 12
N mehrdimensionale arrays Java Basics - Anfänger-Themen 12
E Arrays in einer ArrayList miteinander vergleichen Java Basics - Anfänger-Themen 12
Kingdako Wie löse ich eine Mathematische Formel mit Arrays und Schleifen? Java Basics - Anfänger-Themen 32
D Wie kann man in Java nach Arrays auf Duplikate prüfen Java Basics - Anfänger-Themen 12
S Hilfe bei Praktischen Aufgaben von Arrays Java Basics - Anfänger-Themen 39
T Objekte mit arrays erstellen Java Basics - Anfänger-Themen 6
M Problem bei verschachtelter for-Schleife bei zweidimensionalen Arrays Java Basics - Anfänger-Themen 3
J Mehrdimensionale Arrays Java Basics - Anfänger-Themen 2
pc pc pc pc pc letztes Element eines Arrays n Java Basics - Anfänger-Themen 3
M Arrays Java Basics - Anfänger-Themen 3
Ostkreuz Wert von Arrays summieren Java Basics - Anfänger-Themen 1
Ostkreuz Summieren von Arrays Java Basics - Anfänger-Themen 4
javaBoon86 Arrays 2 Dimension Werte ausgeben Java Basics - Anfänger-Themen 15
paulen1 Best Practice "Unchecked Assignment" Warnung beim erstellen eines 2D Arrays of Arraylists Java Basics - Anfänger-Themen 2
B bei 2 Arrays Anzahl gleicher Elemente vergleichen? Java Basics - Anfänger-Themen 49
JustAProgrammer Ein Dreieck mit Arrays erstellen Java Basics - Anfänger-Themen 2
TheSepp Nur Arrays ausgeben, die Werte zugewiesen haben. Java Basics - Anfänger-Themen 4
volcanos Addition -> List<Integer> mit Arrays.asList() versus List<Integer>ArrayList<>() Java Basics - Anfänger-Themen 14
ArrayList mit unbekannter Menge an Arrays die Arrays vergleichen Java Basics - Anfänger-Themen 9
D Arrays an replaceAll-Methode übergeben Java Basics - Anfänger-Themen 12
rosima26 Geordnete Arrays ausgeben Java Basics - Anfänger-Themen 31
D Inhalt eines Arrays ausgeben Java Basics - Anfänger-Themen 7
A Jedes zweite Element eines Arrays entfernen Java Basics - Anfänger-Themen 30
C Zwei Arrays addieren und ausgeben Java Basics - Anfänger-Themen 3
E Zinsrechnung mithilfe von Arrays Java Basics - Anfänger-Themen 12
LePetitChat1 Arrays - NullPointerException? Java Basics - Anfänger-Themen 14
H Arrays: Größten Zahlen Unterschied herausfinden Java Basics - Anfänger-Themen 20
H Arrays befüllen Java Basics - Anfänger-Themen 43
C60 Methoden Main-Methode erkennt meine Arrays nicht. Java Basics - Anfänger-Themen 7
D Arrays Java Basics - Anfänger-Themen 9
C Java Arrays - Ausgabe in Methode Java Basics - Anfänger-Themen 12
R While-Loop der die Einträge eines Arrays in umgekehrter Reihenfolge anzeigt Java Basics - Anfänger-Themen 3
N Arrays Java Basics - Anfänger-Themen 5
W n verschiedene Arrays zufällig ausgeben - mit der Random-Klasse? Java Basics - Anfänger-Themen 8
U zwei 2D arrays auf gleich sein überprüfen Java Basics - Anfänger-Themen 14
melaniemueller Lagerverwaltung erstellen - mehrdimensionale Arrays Java Basics - Anfänger-Themen 62
C initialisieren eines arrays richtiger Größe und mit geeignetem Datentyp Java Basics - Anfänger-Themen 26
Bademeister007 Elemente aus zwei verschiedenen Arrays miteinander vergleichen und gegeben falls entfernen Java Basics - Anfänger-Themen 14
A Arrays aufsummieren Java Basics - Anfänger-Themen 11
C Wie 2 Arrays zusammenfügen und sortieren? Java Basics - Anfänger-Themen 11
S Arrays aneinanderketten Java Basics - Anfänger-Themen 20
Sinan Arrays auflisten ohne Wiederholung Java Basics - Anfänger-Themen 28
D Hilfe beim Erzeugen eines Arrays NullPointerException wird ausgelöst Java Basics - Anfänger-Themen 11
R Werte und Reihenfolge in 2d Arrays vergleichen Java Basics - Anfänger-Themen 5
D Verschlüsslungsaufgabe / Arrays Java Basics - Anfänger-Themen 6
L Methode für Zweidimensionale Arrays Java Basics - Anfänger-Themen 4
L Methode zum invertieren eines Arrays Java Basics - Anfänger-Themen 7
S zweidimensionale char arrays Java Basics - Anfänger-Themen 14
J Methoden Mehrdimensionale Arrays übereinander legen Java Basics - Anfänger-Themen 5
D Verwirrung bei Streams aus primitiven Arrays Java Basics - Anfänger-Themen 2
P Arrays mit verschiedenen Längen miteinander dividieren. Java Basics - Anfänger-Themen 1
P Wie kann ich die Zahlen dieses Arrays dividieren? Java Basics - Anfänger-Themen 2
N 2D Arrays jedes xy vergleichen Java Basics - Anfänger-Themen 7
J Traveling Salesman Problem [Arrays] Java Basics - Anfänger-Themen 9
M Arrays mit mehreren Werten über JOptionPane initialisieren Java Basics - Anfänger-Themen 12
Kawastori Größe eines Arrays bestimmen Java Basics - Anfänger-Themen 13
Zeppi Arrays[i] Java Basics - Anfänger-Themen 7
Lena_2611 Vergleich von Array1 Index mit Array2 Wert und erzeugen eines neues Arrays Java Basics - Anfänger-Themen 8
J B-Sprache mit Arrays ausführen Java Basics - Anfänger-Themen 18
A Teilarrays eines 2D-Arrays sortieren Java Basics - Anfänger-Themen 4
C Arrays - deklarieren, initialisieren? Ist das ein Objekt? Java Basics - Anfänger-Themen 3
K Sudoku mit 2D Arrays Java Basics - Anfänger-Themen 19
T Vertikales Histogramm mit Arrays Java Basics - Anfänger-Themen 3
JD_1998 Arrays einlesen, zwischenspeichern und wieder ausgeben Java Basics - Anfänger-Themen 8

Ähnliche Java Themen

Neue Themen


Oben