# Zweidimensionale ArrayList



## Taramsis (18. Jul 2012)

Ich möchte gerne ein zweidimensonale ArrayList erstellen, da ich innerhalb eines vergleichs diese dynamisch befüllen will:


```
ArrayList<ArrayList<String>> test= new ArrayList<ArrayList<String>>();
   for(i){
      for(j){
         if(bla) {
            test.add(i, ""); // Wie kann ich jetzt hier meine Strings befüllen?
         }
       }
   }
```


----------



## Swoop (18. Jul 2012)

Und wo liegt dein Problem?
Wenns nicht funktioniert, nimm doch ein Objekt


----------



## Taramsis (18. Jul 2012)

Auch wenn ich es oben als Object deklariere kommt an der stelle, dass die Methode add(int, ArrayList<Object>) für die Argumente (int,Object) nicht anwendbar ist:


```
ArrayList<ArrayList<Object>> formationMissions = new ArrayList<ArrayList<Object>>();
for(i){
      for(j){
         if(bla) {
            test.add(i, Object); // Fehler!!
         }
       }
   }
```


----------



## SlaterB (18. Jul 2012)

was ist test? wozu die doppelte Schleife?
maximal wäre zunächst eine Schleife denkbar, jedes i für eine der inneren Listen, 
diese inneren Listen wären ArrayList<Object>, und in eine solche Liste könntest du ein Objekt einfügen

vielleicht meinst du 
formationMissions.get(i).add(object);


----------



## pl4gu33 (18. Jul 2012)

```
ArrayList<ArrayList<String>> list1=new ArrayList<ArrayList<String>>();		
ArrayList<String> stringlist=new ArrayList<String>();		
list1.add(stringlist);		
list1.get(0).add("TEST");
```


in deinem Beispiel:


```
ArrayList<ArrayList<String>> test= new ArrayList<ArrayList<String>>();
   for(i){
      for(j){
         if(bla) {
            test.add(i, ""); // Wie kann ich jetzt hier meine Strings befüllen?
         }
       }
   }
```

addest du einen String in die "test" ArrayList.... aber die kann doch nur ArrayList<Strings> aufnehmen keine Strings


----------



## Swoop (18. Jul 2012)

Nein sorry da hab ich mich falsch ausgedrückt.

Die erste ArrayList hat als Typ ein Objekt. Nenn wir es Maus.
Das Maus-Objekt hat dann wieder eine ArrayList den Strings als Namen für ihre Kinder...

praktisch so.


```
public class Test {
     public static void main(String.. args){
          ArrayList<Maus> mausList = new ArrayList<Maus>();
     }
}

public class Maus {
    ArrayList<String> kinderNamen = new ArrayList<String>();

}
```

Das ist auch eine recht einfache Art und Weiße. Der Code wurde nicht getestet  aber das prinzip sollte klar werden.
Ich glaube nicht, dass eine ArrayList zweidimensional aufgerufen werden kann!

Grüße Swoop


----------



## Taramsis (18. Jul 2012)

Antwort an Slater:


```
ArrayList<ArrayList<Object>> test= new ArrayList<ArrayList<Object>>();
for(i){
      for(j){
         if(bla) {
            test.add(i, Object); // Fehler!!
         }
       }
   }
```

Im Grunde habe ich oben mehrere Arrays die Vergleiche durchführen, ich möchte eine zweidimensionale ArrayListe erstellen, dass dynamisch einen ArrayListe i erstellt und dann diesen mit meinen Strings befüllen!


----------



## pl4gu33 (18. Jul 2012)

Taramsis hat gesagt.:


> ```
> ArrayList<ArrayList<Object>> test= new ArrayList<ArrayList<Object>>();
> for(i){
> for(j){
> ...



Wie gesagt deine ArrayList test kann nur "Objekte" vom Typ ArrayList<Object> aufnehmen .... diese wiederum "Objects" aufnehmen kann .... du müsstest "test.get(0).add(ObjecT); machen

s.h. mein Bsp. oben


----------



## Attila (18. Jul 2012)

```
ArrayList<ArrayList<String>> test= new ArrayList<ArrayList<String>>();
for(int i=0;i<5;i++){
   ArrayList<String> strList = new ArrayList<String>();
   for(int j=0;j<5;j++){
       strList.add("asdf");
   }
   test.add(strList);
}
```


----------



## Taramsis (18. Jul 2012)

Stimmt da stand doch was drinnen! Danke!


----------

