Java Array Struktur, welche ist wann besser?

Crucial

Mitglied
Java:
int [] zahlenliste = new int [4];
    zahlenliste [0] = 12;
    zahlenliste [1] = 111;
    zahlenliste [2] = 18;
    zahlenliste [3] = 188
        
        ODER
        
String [] clans = {"mafia", "gangstar", "italiano"};

Das sind 2 unabhängige Java Projekte.
Ich wollte fragen was genau sind denn die Vorteile und Nachteile beider Methoden?
Wann sollte ich die "umständlichere" Variante, also die obere verwenden und wann die untere?
Ich denke bei größeren Daten, wäre die obere von Vorteil damit man eine leichtere Übersicht hat,
aber mehr fällt mir momentan nicht ein.
 
Also die Frage ist so für mich nicht zu beantworten. Hintergrund ist, dass man beides vermutlich einfach so nicht verwenden würde. Das erste ist ein Liste von Zahlen, bei denen ich keinen wirklichen Sinn erkennen kann. Was sind das für Daten Wozu werden diese gebraucht? Wieso genau 4 und nicht mehr oder weniger? Was für eine Bedeutung haben die?

Bei dem zweiten ist es ähnlich. Wenn es genau diese 3 Clans geben soll, dann wäre das nie ein Array sondern eher eine Enumeration.
Wenn es eine Auflistung von Clans ist, die veränderlich ist, dann wäre das also eher ein Datentyp wie eine List.

Die Fragestellung ist also maximal interessant im Bereich von Aufgaben, wenn man anfängt Java zu lernen. Wenn man später wirklich Software entwickelt wird man so code eher seltener nutzen. Wenn, dann wäre aber vermutlich letzteres interessanter, da dort einfach sicher gestellt ist, dass es keine Elemente gibt, die nicht initialisiert wurden.
 
Konrad ich glaube er will den underschidlich bei der Erstellung des Arrays Erklärt bekommen. Du siehst das etwas zu kompliziert.

Erstes Beispiel da wird ein Array erstellt mit Platz fur vier Elemente.
Und im nechsten Schritt wird den Elementen Feldern etwas zugewiesen.

Beim Beispiel 2
Wird das Array erstellt und gleich die werte besser Strings den Feldern zugewiesen.
Wenn du schon beim coden weißt was in das array soll macht das zweite sinn.
Der Compiler erkennt selber wieviel Elemente er braucht. Wie goss das Array ist.
 
Ps das erste Beispiel wäre wenn sich die Daten im Laufe des Programms erst ergeben berechnet werden und dann zugewiesen werden.
 
Konrad ich glaube er will den underschidlich bei der Erstellung des Arrays Erklärt bekommen.
Das glaube ich nicht - er hat verstanden, was der Code macht und will nur wissen, wann er welche Variante nutzen soll. Seine Aussage ist ja diesbezüglich sehr deutlich:
Ich wollte fragen was genau sind denn die Vorteile und Nachteile beider Methoden?
Wann sollte ich die "umständlichere" Variante, also die obere verwenden und wann die untere?
 
Also die Frage ist so für mich nicht zu beantworten. Hintergrund ist, dass man beides vermutlich einfach so nicht verwenden würde. Das erste ist ein Liste von Zahlen, bei denen ich keinen wirklichen Sinn erkennen kann. Was sind das für Daten Wozu werden diese gebraucht? Wieso genau 4 und nicht mehr oder weniger? Was für eine Bedeutung haben die?

Bei dem zweiten ist es ähnlich. Wenn es genau diese 3 Clans geben soll, dann wäre das nie ein Array sondern eher eine Enumeration.
Wenn es eine Auflistung von Clans ist, die veränderlich ist, dann wäre das also eher ein Datentyp wie eine List.

Die Fragestellung ist also maximal interessant im Bereich von Aufgaben, wenn man anfängt Java zu lernen. Wenn man später wirklich Software entwickelt wird man so code eher seltener nutzen. Wenn, dann wäre aber vermutlich letzteres interessanter, da dort einfach sicher gestellt ist, dass es keine Elemente gibt, die nicht initialisiert wurden.

Die Inhalte an sich sind uninteressant.
Ich wollte mit meinen Beispielen nur die zwei unterschiedlichen Array Methoden zeigen.
Mir ging es eher um das Allgmeine, was du mir eigentlich hiermit:

"... so code eher seltener nutzen. Wenn, dann wäre aber vermutlich letzteres interessanter, da dort einfach sicher gestellt ist, dass es keine Elemente gibt, die nicht initialisiert wurden." beantwortet hast, danke.
 
Ich würde sagen, dass die Variante 1 in der Praxis eher anzutreffen wäre. Es wird ein Array bestimmter Länge erstellt und diesem werden Daten zugewiesen. Erste Wahl wäre vermutlich irgend eine List<>, aber es kann Fälle geben, in denen man ein Array so einsetzen würde.

Die Variante 2 würde ich nur zum Ausprobieren verwenden, wenn ich ein Array mit ein paar Testdaten benötige.
 
Ich würde sagen, dass die Variante 1 in der Praxis eher anzutreffen wäre. Es wird ein Array bestimmter Länge erstellt und diesem werden Daten zugewiesen. Erste Wahl wäre vermutlich irgend eine List<>, aber es kann Fälle geben, in denen man ein Array so einsetzen würde.

Die Variante 2 würde ich nur zum Ausprobieren verwenden, wenn ich ein Array mit ein paar Testdaten benötige.
Interessant danke
 
Im Normalfall würde ich weder noch verwenden, von Arrays hab ich mich bis auf sehr wenige Ausnahmen längst verabschiedet.
Bei mir würde Arrays.asList() zum Einsatz kommen.

Variante1 ermöglicht dir, bestimmte Werte nicht zu setzen und frei zu lassen, was du mit Variante 2 hinkriegst, indem du null reinschreibst.
Dafür kannst du dich aber mit Indizes vertun und versehentlich was frei lassen oder gar einen IndexOutOfBounds riskieren, das kann dir mit Variante 2 nicht passieren. Mit der kann es dir aber passieren, dass du - falls du einen Wert vergisst oder zu viel reinschreibst, mehr oder weniger Felder kriegst als ursprünglich geplant.

Aber unterm Strich ist es vollkommen egal, was von beidem du verwendest, sie liefern beide ein Array mit Werten und das ist es, was du haben wolltest. Verwende das, was du leichter lesen / warten kannst.
 
Ich würde sagen, dass die Variante 1 in der Praxis eher anzutreffen wäre. Es wird ein Array bestimmter Länge erstellt und diesem werden Daten zugewiesen. Erste Wahl wäre vermutlich irgend eine List<>, aber es kann Fälle geben, in denen man ein Array so einsetzen würde.

Die Variante 2 würde ich nur zum Ausprobieren verwenden, wenn ich ein Array mit ein paar Testdaten benötige.
Vielleicht noch einmal zur Klarstellung, was ich meinte.

Ich meinte mit Variante 1 ein Array eines bestimmten Typen zu erstellen und im weiteren Verlauf programmatisch mit Inhalten (aus Berechnungen oder sonst woher) zu füllen. Wobei es vermutlich nicht mehr sehr viele Anwendungsfälle gibt, in denen man dafür ein Array verwenden würde.

Ich meinte nicht das, was oben gezeigt wurde, also das Array zu erstellen und dem anschließend einfach feste Werte zuzuweisen. Wenn das benötigt wird, dann gilt eher, was ich zu Variante 2 geschrieben hatte (Testdaten o.ä.).
 
Ich denke, bei der Fragestellung geht es wirklich darum, wie man es besser mit Anfangswerten (ob nun fix oder nicht sei dahingestellt) befüllt.
Wenn es keine Anfangswerte gibt, sondern Werte erst im Laufe der Zeit eintrudeln, dann geht eh nur eine Variante (es sei denn, man verwendet in Variante 2 lauter nulls), dann hat sich die Frage nach der Sinnhaftigkeit erledigt.
 

Zurück
Oben