Zweidimensionales array kopieren und in eindimensionales überführen

mihe7

Top Contributor
Zuerst haben wir es mit verschiedenen Datentypen zu tun, mit denen wir hantieren können. Es gibt sogenannte primitive Datentypen wie int, char, byte, usw. und komplexe Datentypen.

Bei Instanzen eines primitiven Datentyps (int usw.) handelt es sich um einfache Werte. Deklarierst Du eine Variable z. B. vom Typ int, dann repräsentiert diese Variable eben den betreffenden Wert.

Bei Instanzen komplexer Datentypen speichert die Variable nicht die Instanz (z. B. das String-Objekt) selbst, sondern nur dessen Adresse im Speicher. Die Variable ist also nur eine Referenz auf das jeweilige Objekt. Daher werden die in Java vorhandenen komplexen Datentypen auch als Referenztypen bezeichnet.

Im Code sieht man den Unterschied meist am new-Operator, d. h. wenn ein new-Operator verwendet wird, handelt es sich um einen Referenztypen, der Umkehrschluss ist nicht immer möglich (String-Literale sind z. B. Objekte, ohne dass man new verwenden müsste):
Java:
int x = 5; // primitiver Datentyp, der Wert kann sofort zugewiesen werden
int[] x = new int[5]; // new-Operator -> komplexer Datentyp int-Array.

Nun gibt es eine besondere Referenz null. Dieses null steht praktisch für "kein Objekt".

Beispiel:
Java:
String x = null; // x speichert aktuell die null-Referenz, also keine Referenz auf ein Objekt

Wenn x == null gilt und Du versuchst, auf eine Methode oder Feld von x zuzugreifen, wirst Du mit einer NullPointerException belohnt.

Bezogen auf Dein Beispiel heißt das: der Parameter array in
Java:
public static int[] flatternAndSortWithoutBiggest(int[][] array) {
ist eine Referenz auf eine Instanz des komplexen Datentyps "Array von int-Arrays" und kann null sein, wenn der Aufrufer eine null-Referenz übergibt. Beispiel:
Java:
flatternAndSortWithoutBiggest(null);
// oder auch folgendes, falls x == null gilt
flatternAndSortWithoutBiggest(x);

Wenn Du jetzt in der ersten Zeile
Java:
        for(int i = 0; i<array.length;i++) {
auf die Länge des Arrays zugreifst, bekommst Du eben eine NullPointerException, falls zu diesem Zeitpunkt array == null gilt. Das ist auch logisch, denn die "Länge von keinem Array" ergibt keinen Sinn.

Daher musst Du vorher prüfen, ob array == null gilt und entsprechend reagieren.
 
K

kneitzel

Gast
Deine Geduld mihe7 ....

Neue Aufgabe => Neuer Thread.

Und nur als kleiner Hinweis ganz am Rande: Ihr könnt das doch alles Testen!

Ihr schreibt eine Methode und diese muss für alle Fälle getestet werden. Also könnt ihr doch in der main Methode alles erweitern:
Java:
    public static void main(String[] args) {
            
        int [][] unsorted =  new int [][] { {1,2,3} , {4,5,6} , {7,8,9} };
        int [] ergebnis = flatternAndSortWithoutBiggest(unsorted);
        System.out.println(Arrays.toString(ergebnis));

        unsorted = null;
        ergebnis = flatternAndSortWithoutBiggest(unsorted);
        System.out.println(Arrays.toString(ergebnis));

        unsorted =  new int [][] { null , {4,5,6} , {7,8,9} };
        ergebnis = flatternAndSortWithoutBiggest(unsorted);
        System.out.println(Arrays.toString(ergebnis));
        
        // Und noch mehr Tests ... Was ist, wenn in einem Teilarray nur 1 Element ist
        // oder ganz viele an einer Stelle....
    }

Generell ist es so, dass bei den Tests jeder Befehl durchlaufen werden sollte. Also wenn ihr array == null Testet, dann muss der Fall getestet werden. array.length == 0 fehlt noch - den Test müsste man noch bauen. Das gleiche für ein inneres Array!

Und es sollte doch viel einfacher sein, etwas selbst zu testen, als im Forum zu fragen.
 

jono

Top Contributor
Danke @mihe7 und @JustNobody , die Geduld und dass ihr sachlich bleibt ist wirklich motivierend. Und ja es ist eigentlich einfach das selbst zu testen, jedoch war ich mir dessen nicht wirklich bewusst, da ich das noch nicht so gemacht hatte , aber mit deinen Beispielen sollte das jetzt auch möglich sein, wenn nicht bitte ich um Geduld wenn ich im Detail etwas nicht verstanden habe :)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Ü Zweidimensionales Array in der ersten Zeile deklarieren Java Basics - Anfänger-Themen 13
S Prüfen ob ein zweidimensionales Array rechteckig ist Java Basics - Anfänger-Themen 4
sserio Iterierung über ein zweidimensionales Array Java Basics - Anfänger-Themen 16
sserio Zweidimensionales Array [][] wird untereinander ausgegeben Java Basics - Anfänger-Themen 14
G zweidimensionales int Array sortieren Java Basics - Anfänger-Themen 57
P Zweidimensionales Array als Tabelle mit befüllten Zahlen Java Basics - Anfänger-Themen 10
Yasemin bahar zweidimensionales Array Java Basics - Anfänger-Themen 5
O zweidimensionales array in eine csv-Datei Java Basics - Anfänger-Themen 1
K Übergabe von Werten (zweidimensionales Array) aus einer Methode an zweidimensionales Array in main() Java Basics - Anfänger-Themen 3
I Java zweidimensionales array befüllen mit for-schleife Java Basics - Anfänger-Themen 2
J zweidimensionales Array Java Basics - Anfänger-Themen 1
S Zweidimensionales Array in ein eindimensionales Array speichern Java Basics - Anfänger-Themen 6
X Java zweidimensionales Array Java Basics - Anfänger-Themen 5
J Zweidimensionales Array in CSV File exportieren Java Basics - Anfänger-Themen 3
U Methoden Zweidimensionales Array mit Arrays.sort sortieren? Java Basics - Anfänger-Themen 22
F Erste Schritte zweidimensionales array Java Basics - Anfänger-Themen 2
J Erste Schritte zweidimensionales Array Muster befüllen. Java Basics - Anfänger-Themen 4
K drei eindimensionale Arrays in ein zweidimensionales Array Java Basics - Anfänger-Themen 10
K Zweidimensionales Array erstellen und zufällig mit 0 und 1 füllen Java Basics - Anfänger-Themen 11
P zweidimensionales Array anlegen und mit DB-Daten füllen Java Basics - Anfänger-Themen 14
W Erste Schritte Zweidimensionales Array - Gerade Zahlen anzeigen lassen Java Basics - Anfänger-Themen 3
L zweidimensionales char array reihenfolge ändern ? Java Basics - Anfänger-Themen 2
C ZweiDimensionales Array erstellen und Spiegeln Java Basics - Anfänger-Themen 1
H zweidimensionales array füllen Java Basics - Anfänger-Themen 6
D Zweidimensionales Array ( Java Basics - Anfänger-Themen 2
D Zweidimensionales Array (Länge) Java Basics - Anfänger-Themen 2
M Zweidimensionales Array aus Textdatei gewinnen Java Basics - Anfänger-Themen 6
M Zweidimensionales Array um 1 addieren Java Basics - Anfänger-Themen 3
B Zweidimensionales Array Elemente jeder Spalte zählen Java Basics - Anfänger-Themen 9
C Methoden Diagonalen am best. Punkt im zweidimensionales array finden Java Basics - Anfänger-Themen 3
S Zweidimensionales Array mit Diagonalen Java Basics - Anfänger-Themen 9
M Zugriffsproblem auf (zweidimensionales) Array in einer ArrayList Java Basics - Anfänger-Themen 15
C Datentypen Zweidimensionales Array mit String und int Java Basics - Anfänger-Themen 3
W Datentypen Zweidimensionales Boolean Array Java Basics - Anfänger-Themen 13
A Zweidimensionales Array Java Basics - Anfänger-Themen 3
M Zweidimensionales Array durchlaufen Java Basics - Anfänger-Themen 4
C zweidimensionales Array sortieren Java Basics - Anfänger-Themen 6
B Zweidimensionales Array durchsuchen und ändern Java Basics - Anfänger-Themen 8
J Zweidimensionales Array durch ToString ausgeben lassen Java Basics - Anfänger-Themen 21
B Zweidimensionales Array mit boolean Werten Java Basics - Anfänger-Themen 3
M Zweidimensionales Array befüllen Java Basics - Anfänger-Themen 4
C Zweidimensionales String Array initialisieren Java Basics - Anfänger-Themen 2
S Zweidimensionales Array mit Schleife summieren Java Basics - Anfänger-Themen 2
N zweidimensionales array größe bestimmen Java Basics - Anfänger-Themen 1
F Datentypen Zweidimensionales Array füllen Java Basics - Anfänger-Themen 6
S zweidimensionales ARRAY Java Basics - Anfänger-Themen 2
S zweidimensionales Array Java Basics - Anfänger-Themen 6
berti99 Zweidimensionales Array befüllen Java Basics - Anfänger-Themen 5
U Zweidimensionales Array mit Eindimensionalem Array Java Basics - Anfänger-Themen 7
J zweidimensionales Array einselen und ausgeben Java Basics - Anfänger-Themen 15
G Zweidimensionales Array - dynamisch Java Basics - Anfänger-Themen 4
M Zweidimensionales Array Java Basics - Anfänger-Themen 3
G zweidimensionales Array vergrößern Java Basics - Anfänger-Themen 3
M Zweidimensionales dynamisches Array füllen Java Basics - Anfänger-Themen 2
J zweidimensionales Array Java Basics - Anfänger-Themen 3
M Zweidimensionales String-Array initialisieren Java Basics - Anfänger-Themen 6
P zweidimensionales Array erstellen Java Basics - Anfänger-Themen 9
D erste spalte eines zweidimensionales Array sortieren ??!! Java Basics - Anfänger-Themen 2
N zweidimensionales 10x10 Feld erstellen Java Basics - Anfänger-Themen 3
D aus 2 arrays ein zweidimensionales formen Java Basics - Anfänger-Themen 9
R dynamisches zweidimensionales Feld erzeugen Java Basics - Anfänger-Themen 8
V Zweidimensionales Ganzzahlfeld Java Basics - Anfänger-Themen 7
T Array verkleinern Java Basics - Anfänger-Themen 2
J Array aus Numberfield Eingaben Java Basics - Anfänger-Themen 7
D Array List mit Objekten sortieren Java Basics - Anfänger-Themen 2
onlyxlia Anzahl Random Zahlen mit Scanner abfragen und in Array speichern Java Basics - Anfänger-Themen 10
Ü Java Array - Buchstaben als Zahlen ausgeben Java Basics - Anfänger-Themen 22
Thomas Uppe 2D Array Reihenfolge vermischen Java Basics - Anfänger-Themen 4
T array auslesen Java Basics - Anfänger-Themen 2
Nitrogames Variablen Variable aus JOptionPane Abfrage in Array einfügen Java Basics - Anfänger-Themen 4
moini Auf Array aus Superklasse zugreifen? Java Basics - Anfänger-Themen 2
J ArrayList in 2D-Array konvertieren. Java Basics - Anfänger-Themen 48
M NullPointerException: Cannot read the array length because "this.Kinder" is null Java Basics - Anfänger-Themen 1
P Wieso kann ich als Index für einen Array einen Char angeben? Java Basics - Anfänger-Themen 3
Finn_lol Fehlermeldung bei Schleife mit Array Java Basics - Anfänger-Themen 4
Proxy Chars vor array übergabe toLowerUpcase Java Basics - Anfänger-Themen 14
iAmFaiinez Primzahlen Tester ohne Array Java Basics - Anfänger-Themen 4
S array 2 dimensional treppe Java Basics - Anfänger-Themen 3
S Array 2x2 Blöcke mit 0 und 1 Java Basics - Anfänger-Themen 10
C Array von Klassen Java Basics - Anfänger-Themen 2
julian0507 2Dim-Array Spaltensummen Java Basics - Anfänger-Themen 1
XWing Doppelte Zahlen im Array Java Basics - Anfänger-Themen 8
melisax Java 2D-Array Tabelle Java Basics - Anfänger-Themen 4
melisax Java Array Wert an bestimmtem Index angeben Java Basics - Anfänger-Themen 14
W Items löschen aus String Array vom Custom Base Adapter Java Basics - Anfänger-Themen 2
Proxy Stack erweitern mit neuem Array falls der alte voll ist!? Java Basics - Anfänger-Themen 5
E Array, nächste Zahl zur 5 ausgeben, wie? Java Basics - Anfänger-Themen 42
J Array.list vergleichen Java Basics - Anfänger-Themen 1
W Java-Code mit Array Java Basics - Anfänger-Themen 14
D Reflections & Generisches Array Java Basics - Anfänger-Themen 4
T Array Java Basics - Anfänger-Themen 2
T Array Java Basics - Anfänger-Themen 15
T Wörteranzahl im Array zählen Java Basics - Anfänger-Themen 9
Ostkreuz Zweidimensionaler Array Index Java Basics - Anfänger-Themen 2
S String Array Buchstaben um einen gewissen Wert verschieben Java Basics - Anfänger-Themen 4
R Images aus einem Array ausgeben Java Basics - Anfänger-Themen 3
R 2d Array individuell machen Java Basics - Anfänger-Themen 4
D 2D Char Array into String Java Basics - Anfänger-Themen 2
J Array Median bestimmen Java Basics - Anfänger-Themen 6
S Array Maximum bestimmen mit for und foreach Java Basics - Anfänger-Themen 7

Ähnliche Java Themen

Neue Themen


Oben