# [gelöst]Objekte in einer Schleife erzeugen



## Agent (28. Apr 2009)

Hallo,

wenn ich in meinem Java-Programm ein Objekt der Klasse Node (der Inhalt von Node spielt hier jetzt keine Rolle) anlege, dann mache ich das ja einfach folgendermaßen:

```
Node one = new Node(statusUebergabe); //one wird vom Compiler als Objekt-Name akzeptiert
```
Da ich nun aber mehrere Nodes innerhalb einer Schleife erstellen will und vorher noch nicht weiß, wieviele es werden, würde ich die Namen der Nodes gerne durchnummerieren. Der folgende Schleifenrumpf (Inhalt einer bel. Schleife) wird leider vom Compiler nicht akzeptiert:

```
Node Integer.toString(x) = new Node(statusUebergabe); x++; //x ist vom Typ int und wird nach Anlegen eines neuen Node inkrementiert
//Der Compiler interpretiert Integer.toString(x) als eigenständige Anweisung und erwartet einen Strichpunkt
```
Hat jemand eine Idee, wie ich das realisieren kann, bzw. was ich hier verkehrt mache? Danke!


----------



## foobar (28. Apr 2009)

Du brauchst ein Map Map (Java 2 Platform SE v1.4.2)


----------



## tfa (28. Apr 2009)

Oder eine List List (Java Platform SE 6)
Zum Beispiel ArrayList.


----------



## diggaa1984 (28. Apr 2009)

sollte man dazu sagen, dass die knoten dann keine eigentlichen namen mehr besitzen die sie identifizieren. Als Notlösung könntest du eine ID oder dergleichen im Node unterbringen und diese als Pseudonym verwenden


----------



## MarcB (28. Apr 2009)

diggaa1984 hat gesagt.:


> sollte man dazu sagen, dass die knoten dann keine eigentlichen namen mehr besitzen die sie identifizieren. Als Notlösung könntest du eine ID oder dergleichen im Node unterbringen und diese als Pseudonym verwenden



Bei ner Map schon, da hat man ja den Key.



Agent hat gesagt.:


> ```
> Node Integer.toString(x) = new Node(statusUebergabe); x++;
> ```



Das ist ein wirklich cooles Konstrukt. Funktioniert aber nur bei manchen dynamischen Sprachen (und definitiv nicht in Java).


----------



## diggaa1984 (28. Apr 2009)

@Map: joa da hast recht, hatte ich unterschlagen^^


----------



## Agent (28. Apr 2009)

Danke!

Mit

```
myList.add(new Node(swap(root.getState(),x,y,x+1,y))); //myList ist eine ArrayList
```
funktionierts


----------



## Agent (28. Apr 2009)

Hi nochmal!

ich hätte nochmal eine Frage zu meiner frisch angelegten ArrayList:

Und zwar möchte ich durch diese ArrayList durchiterieren. Wird in folgendem Code das erste Element in meiner Liste mitberücksichtigt?

```
Iterator<Node> itr = myList.iterator();
while (itr.hasNext()) {
  Node element = itr.next();
  if (element.found()) wahrheitswert=false;
}
```


----------



## maki (28. Apr 2009)

Ja, aber nimm doch lieber eine for bzw. eine for-each Schleife.


----------



## diggaa1984 (28. Apr 2009)

maki hat gesagt.:


> Ja, aber nimm doch lieber eine for bzw. eine for-each Schleife.



quasi

```
//auf deine Bezeichner bezogen
for(Node element: myList) {
 <...>
}
```


----------

