Datentypen ArrayList in ArrayList: Zugriff

hk

Bekanntes Mitglied
Hallo Forum,
ich habe eine ArrayList listA in der sich eine ArrayList befindet. Wie kann ich am einfachsten auf die Elemente der inneren Liste zugreifen. In der Form " listA.get(ind1).get(ind2) " geht es nicht. Hat jemand eine Idee?
lg heinz
 
Vielleicht hast du kein Typ-Argument angegeben. Dann kann der Compiler nicht wissen, dass die äußere Liste eine ArrayList enthält und demzufolge geht er von Object aus, für das es keine get()-Methode gibt. So könnte es gehen:
Java:
    public static void main(String[] args) {
        List<ArrayList<String>> list = new ArrayList<>();
        list.add(new ArrayList<>());
        list.get(0).add("Null");
        list.get(0).add("Eins");
        list.get(0).add("Zwei");
        System.out.println(list.get(0).get(1));  // Ausgabe: Eins
    }
 
hk hat gesagt.:
ich habe eine ArrayList listA in der sich eine ArrayList befindet
Grundkurs Programmieren in Java hat gesagt.:
Die Klassen ArrayList und LinkedList
Beide Namen sind Programm. Während die Klasse ArrayList intern mit einem
Feld arbeitet, werden die Elemente von Objekten...
Java:
Produkt a = new Produkt(11111);
Produkt b = new Produkt(22222);
Produkt c = new Produkt(33333);
ArrayList<Produkt> produktListe = new ArrayList<>();
ArrayList<ArrayList<Produkt>> gesamtListe = new ArrayList<>();

produktListe.add(a);
produktListe.add(b);
produktListe.add(c);
gesamtListe.add(produktListe);

int groesseA = gesamtListe.size();
int groesseB = gesamtListe.get(0).size();
System.out.println("A: " + groesseA + ", B: " + groesseB);
//Fehlermeldung
//int groesseC = gesamtListe.get(1).size();

Produkt d = new Produkt(44444);
Produkt e = new Produkt(55555);
Produkt f = new Produkt(66666);
ArrayList<Produkt> produktLIsteZwei = new ArrayList<>();
produktLIsteZwei.add(d);
produktLIsteZwei.add(e);
produktLIsteZwei.add(f);

gesamtListe.add(produktLIsteZwei);
groesseA = gesamtListe.size();
groesseB = gesamtListe.get(0).size();
int groesseC = gesamtListe.get(1).size();
System.out.println("A: " + groesseA + ", B: " + groesseB + ", C: " + groesseC);

/** Konsolenausgabe */

run:
A: 1, B: 3
11111
22222
33333
A: 2, B: 3, C: 3
44444
55555
66666
BUILD SUCCESSFUL (total time: 0 seconds)
 
Ja das Typ-Argument war das Problem! Ich danke allen für ihre Beispiele,
lg Heinz
Code:
    ArrayList<ArrayList> schicht = new ArrayList();
    ...
        for(int i = 0; i < 3; i++) {
            schicht.add(new ArrayList<Integer>());
        }
        schicht.get(1).add(5);
        int r = (Integer) schicht.get(1).get(0);
 
public boolean remove (Object o) {
// The previous method is saved here
int pos = this.indexOf (o);
// Now the element has to be added so that the return value has been cached
boolean supRueckgabe = super.remove (o);

starteRemoveOutput(o, pos);

return supOutput;

}
 

Neue Themen


Zurück
Oben