tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
3
ZUGRIFFE
519
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    ImurNMY ImurNMY ist offline Rookie
    Registriert seit
    Jun 2003
    Beiträge
    6
    Hi zusammen,
    ich hab ein seltsames problem mit einer ArrayList.
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    
    ArrayList<pcRecord> klist =new ArrayList<pcRecord>(7);
    pcRecord temprec=new pcRecord();
    klist.add(temprec);
    klist.add(temprec);
    klist.add(temprec);
     
    klist.get(0).setTime(13);
    klist.get(1).setTime(10);
    klist.get(2).setTime(15);
     
        for(int i=0;i<7;i++){
            System.out.println("Time von "+i+"="+klist1.get(i).getTime());
        }
    führt zu:
    Time von 0=15
    Time von 1=15
    Time von 2=15

    beim debuggen seh ich das er für jeden neuen Wert alle alten Werte überschreibt. Woran liegt das? Seh ich gerade den Walt vor lauter Bäumen nicht?

    Danke im vorauß
     

  2. #2
    Registriert seit
    Dec 2001
    Ort
    Bayern
    Beiträge
    5.800
    Blog-Einträge
    5
    Hallo,

    du fügst deiner ArrayList dreimal eine Referenz auf ein und dasselbe Objekt hinzu. Wenn du verschiedene Objekte haben willst, musst du diese einzeln mit new erstellen.

    Grüße, Matthias
     
    „Gib einem Menschen einen Fisch, und er wird für einen Tag satt. Lehre ihn Fischen, und er wird ein Leben lang satt.“
    “For every complex problem, there is an answer that is short, simple and wrong.”
    “Pessimism is safe, but optimism is a lot faster!”


    Aktuelles Coding Quiz: #17 - Wörter kreuz und quer

  3. #3
    ImurNMY ImurNMY ist offline Rookie
    Registriert seit
    Jun 2003
    Beiträge
    6
    autsch,
    vielen Dank
     

  4. #4
    Anime-Otaku Anime-Otaku ist offline Mitglied Brillant
    Registriert seit
    Aug 2005
    Ort
    Karlsruhe (Baden-Württemberg)
    Beiträge
    905
    Zitat Zitat von Matthias Reitinger Beitrag anzeigen
    Hallo,

    du fügst deiner ArrayList dreimal eine Referenz auf ein und dasselbe Objekt hinzu. Wenn du verschiedene Objekte haben willst, musst du diese einzeln mit new erstellen.

    Grüße, Matthias
    oder eine Copy dieses Objektes erstellen. Hier sollte die clone Methode benutzt werden ggf. muss diese bei der Klasse noch angelegt werden.
     
    Wäre super wenn ihr euren Code in dieser Form einfügt:
    Code java:
    1
    
    System.out.println("Hello World");
    [java]System.out.println("Hello World");[/java]
    Für erledigte Threads dürft ihr den "erledigt"-Button anklicken!
    Über Dank freut sich jeder, der euch geholfen hat - ein Klick auf "Danke" kostet ja nicht mal was
    Blog: http://javaeffective.wordpress.com/

Ähnliche Themen

  1. Verständnis-Problem: Zweidimensionale ArrayList
    Von robbob im Forum Java Grundlagen
    Antworten: 3
    Letzter Beitrag: 03.05.10, 14:26
  2. ArrayList-Problem?
    Von saudade im Forum Java Grundlagen
    Antworten: 6
    Letzter Beitrag: 28.05.08, 22:04
  3. ArrayList Problem
    Von hbrauchl im Forum Java
    Antworten: 3
    Letzter Beitrag: 03.08.07, 11:19
  4. C# - ArrayList-Problem
    Von Alexander12 im Forum .NET Datenverwaltung
    Antworten: 2
    Letzter Beitrag: 22.09.05, 19:59
  5. Inhalt einer ArrayList in andere ArrayList kopieren
    Von Pierre im Forum .NET Archiv
    Antworten: 2
    Letzter Beitrag: 05.07.05, 16:58