ArrayList<String> und ArrayList<String[]>

Status des Themas:
Es sind keine weiteren Antworten möglich.

Diskutiere ArrayList<String> und ArrayList<String[]> im Java Basics - Anfänger-Themen Forum; Hallo Freunde, ich brauche dringd den Tritt, der mir auf die Sprünge hilft. foldendes Problem: Ein ArrayList<String> zu befüllen funtioniert...

  1. hakoe
    hakoe Guest
    Hallo Freunde,

    ich brauche dringd den Tritt, der mir auf die Sprünge hilft.
    foldendes Problem:
    Ein ArrayList<String> zu befüllen funtioniert wie erwartet.
    Ein ArrayList<String[]> zu befüllen klappt (bei mir) nicht!
    So dachte ich,geht es:
    Code (Text):

        ArrayList<String[]> liste=new ArrayList<String[]>();
        String[] zeile=new String[2];
        int i;
        int count=eine Zahl>0;
        for (i=0;i<count;i++){
            zeile[0]="Zeile"+(i+1);
            zeile[1]="Test"+(i+1);
            liste.add(zeile);
       }
     
    Der Compiler frisst es, die Laufzeitumgebung frisst es.
    Und wie ist das Ergebnis?
    Alle (!!) Elemente der ArrayList enthalten die Daten des zuletzt ausgeführten liste.add(zeile).
    W A R U M ?

    Ratlose Grüsse
    hakoe
     
  2. tfa
    tfa Aktives Mitglied
    Du hast nur ein "zeile"-Array. Das steht halt n mal in der Liste.
     
  3. SlaterB
    SlaterB Guest
    weil du mit
    liste.add(zeile);
    ständig dasselbe Objekt einfügst,
    nirgendwo zwischendurch kann man 'new String[]' lesen
     
  4. Leroy42
    Leroy42 Neues Mitglied
    Ganz einfach weil du jedesmal dein Objekt zeile wieder und wieder addest
    und den Inhalt von zeile jedesmal mit den neuesten Werten überschreibst. :noe:
     
  5. Leroy42
    Leroy42 Neues Mitglied
    Uuppss! Seid ihr schnell! :shock: :cool:
     
  6. hakoe
    hakoe Guest
    Danke für so schnelle Reaktionen.
    Lasst mich mal nachdenken.
    Ich melde mich dann nochmal.
     
  7. Gast
    Gast Guest
    So einfach sehe ich das aber nicht, denn wie gesagt:
    Mit einem einfachen String funktioniert es bei gleicher Formulierung wie erwartet

    Code (Text):

        ArrayList<String[]> liste=new ArrayList<String[]>();
        String zeile=new String;
        int i;
        int count=eine Zahl>0;
        for (i=0;i<count;i++){
            zeile="Zeile"+(i+1);
            liste.add(zeile);
       }
     
    hakoe
     
  8. SlaterB
    SlaterB Guest
    weil du hier
    zeile=irgendwas
    schreibst;

    bei der Array-Variante ist aber nirgendwo
    zeile=irgendwas
    zu lesen

    vergleiche
    zeile = ..;
    mit
    liste.add()
    oder
    liste.set()

    nur weil du ein Element des Arrays (oder der Liste) bearbeitest,
    wird deswegen doch nicht auf einmal ein neues Objekt erstellt,
    zum Glück nicht..
     
  9. hakoe
    hakoe Guest
    Hallo SlaterB,
    in der Array-Variante ist "zeile=irgendwas " zu lesen.
    Und zwar zeile[0]= ...
    zeile[1]=...
    da zeile ein Array der Grösse 2 ist.
    Wenn ich jetzt nach dem ersten Listing
    3 Durchläufe mache (count=3), so wird zeile folgendermassen belegt:
    1. Durchlauf: zeile[0]="Zeile1" , zeile[1]="Test1"
    2. Durchlauf: zeile[0]="Zeile2" , zeile[1]="Test2"
    3. Durchlauf: zeile[0]="Zeile3" , zeile[1]="Test3"

    hakoe
     
  10. tfa
    tfa Aktives Mitglied
    Aber du benutzt immer das selbe Array. Du brauchst für jeden Schleifendurchlauf ein neues.
     
Die Seite wird geladen...

ArrayList<String> und ArrayList<String[]> - Ähnliche Themen

ArrayList<String> sort by last word
ArrayList<String> sort by last word im Forum Java Basics - Anfänger-Themen
ArrayList<String> Frage
ArrayList<String> Frage im Forum Allgemeine Java-Themen
ArrayList<ArrayList<ArrayList<String>>>
ArrayList<ArrayList<ArrayList<String>>> im Forum Java Basics - Anfänger-Themen
LinkedList<LinkedList<String>> nach ArrayList<ArrayList<String>> ?
LinkedList<LinkedList<String>> nach ArrayList<ArrayList<String>> ? im Forum Allgemeine Java-Themen
ArrayList<String> alphabetisch sortieren
ArrayList<String> alphabetisch sortieren im Forum Java Basics - Anfänger-Themen
Status des Themas:
Es sind keine weiteren Antworten möglich.
Thema: ArrayList<String> und ArrayList<String[]>