# Objektnamen dynamisch erzeugen



## WuScHiBuBu (31. Mai 2004)

Hallo zusammen.

Wie kann ich mir Objektnamen dynamisch erzeugen 
Ich möchte in einer For-Schleife eine bestimmte Anztahl von Objekten instanzieren, aber damit sie sich nicht überschreiben sollten sich die Objektnamen ändern.
ich habs schon mit Stings, Casting veruscht, hab aber nich geklappt:
Bitte um Hilfe...


----------



## Christian Fein (31. Mai 2004)

Nutze eine List in der du deine Objecte speicherst.

So sind sie Anonym, denn dynamische Benennung funktioniert nicht, da
der compiler  mit sowas nicht umgehen kann.
Oder wenn du weisst wieviele Objecte, dann tut es auch ein Array.


```
List list = new ArrayList();
MyObject temp;
for(int i = 0; i < 100,i++) {
 temp = new  MyObject();
 // tu mach sonstwas
 list.add(temp);
}
```


----------



## WuScHiBuBu (1. Juni 2004)

Danke....
Aber wie das so ist, tritt folgendes Problem danach auf:
Die Objekte, die ich dynamsch erzeugen wollte, sind selber vom Typ LinkedList.
Wie komme ich denn dann an die Elemente der LinkedList in der LinkedList  

Kann ich  die LinkedLists vielleicht auch in einem Array speichern, falls kein Zugriff möglich ist !?

mfg WuSchiBuBu


----------



## firezz (1. Juni 2004)

*problem*



> Die Objekte, die ich dynamsch erzeugen wollte, sind selber vom Typ LinkedList.



Hallo,

Wo siehst Du hier ein Problem? Es ist egal von welchem Typ die Objekte sind.

Iterator iter = list.iterator;

while (iter.hasNext) {
 LinkedList yourDynObjekt = (LinkedList)iter.next();
}


viele Grüße
firezz


----------



## WuScHiBuBu (1. Juni 2004)

sorry, dein Komment hilft mir irgendwie nich...

Mal was konkreter:
 int anzKnoten = 0;


        // Instanziere ein Suche-Objekt
        //Suche suche = new Suche();

        KeyboardRead read = new KeyboardRead();

        // 1. Eingabeaufforderung: Anzahl der Knoten des Graphen.
        System.out.println("Bitte geben sie die Anzahl der Knoten ein: ");
        anzKnoten = read.readInt();

        // In dieser Linked List werden die Adjazenzlisten abgelegt
        LinkedList Adjazenzlisten = new LinkedList();

        // jetzt wird anzKnoten-mal eine Eingabe für die Adjazenzlisten abgefragt
        // und in eine Linked List übertragen, die dann in der Linked List 
        // Adjazenzlisten gespeichert wird
        for(int i=1; i<= anzKnoten; i++) {
            String str = read.readString();
            LinkedList liste = new LinkedList();

            //Untersuchen des Strings
            for(int j=0; j < str.length()-1; j++) {
                char c = str.charAt(j);
                if(c == ';') break; // könnte man auch weglassen
                if(c != ' ')  {
                    ListenElement Element = new ListenElement();
                    Element.setInhalt(c);
                    liste.add(Element);
                }

            }// End of for            

            // Die fertige Adjazenzliste wird in die Linked List eingefügt
            Adjazenzlisten.add(liste);
        } // End of for
        for(int i = 0; i < Adjazenzlisten.size(); i++) {
            // Object a = Adjazenzlisten.get(i);
            String a = Adjazenzlisten.get(i).toString();
            System.out.println(a);

        }
            // for(int j = 0; j < a.size(); j++) {
    } // End of main()

Hier sind die LinkedLists liste in der LinkedList Adjazenzlisten abgelegt.
Wie kann ich jetzt die inneren LinkedLists liste auslesen ?


----------



## Snape (1. Juni 2004)

> _Original geschrieben von WuScHiBuBu _
> *sorry, dein Komment hilft mir irgendwie nich...
> 
> Hier sind die LinkedLists liste in der LinkedList Adjazenzlisten abgelegt.
> Wie kann ich jetzt die inneren LinkedLists liste auslesen ? *



Wie wäre es mit

```
for(int i = 0; i < Adjazenzlisten.size(); i++)
{
 LinkedList yourList = (LinkedList)Adjazenzlisten.get(i);
}
```


----------



## firezz (1. Juni 2004)

-->

for(int i = 0; i < Adjazenzlisten.size(); i++) {

  // innere liste....
   String innereListe = (LinkedList)(Adjazenzlisten.get(i);
  // mache was mit der inneren Liste, z.B. iteriere sie
  for (int j = 0; j < innereListe.size(); j++) {
     // lese die innere liste und mach was----
 }
}

viele Grüße
firezz

P.S. ich sehe man hat mir zuvorgekommen)


----------



## WuScHiBuBu (1. Juni 2004)

ahhhhhh ja cool thx euch beiden !

Euer WuScHiBuBu


----------

