Java tabelle in baumform

scue

Cadet 4th Year
Registriert
Aug. 2008
Beiträge
68
hi,

ich brauch mal fix hilfe. mir fehlt es am veständnis.

ich will eine tabelle aufbauen wie eine pyramide, also

1
2 3
4 5 6 7

usw ...

die jeweiligen personen der platzierungen befinden sich in einer arraylist. ich kann leider keine foreach schleife nutzen, da sonst an jeder der positionen der erste dargestellt wird.

ist es möglich meinetwegen zu sagen ich möchte die erste person der arraylist ... dann die zweite ... bin java newbie

kann mir jmd helfen?
 
Natürlich ist das möglich.

for(int a=0; a!=array_size; a++)
{
//your_array[a]
//damit du dann jeweils auf die Position zufreifen kannst
//hier kannst du dann was machen

}

Soweit habe ich dein Problem verstanden, falls ich es falsch verstanden habe: erkläre es bitte nochmal.

Gruß,

badday
 
Wenn du Fragen zu fertigen Java Objekten hast, ist dies immer eine gute Anlaufstelle:

http://java.sun.com/javase/6/docs/api/

Zum Beispiel, wenn du bei deiner Liste "remove(0)" aufrufst, liefert dir die Liste immer das erste Element in der Liste zurück und löscht dieses gleichzeitig. So kannst du durch ständige Aufrufe von "remove(0)" die Liste langsam leeren.

Oder du rufst ".get(x)" auf deiner Liste auf, wobei x für die Postition steht, die du haben möchtest (also 0,1,2,3,... um die ganze Liste durchzugehen).
 
ok ich habe es jetzt mit .get probiert. scheint auch zu funktionieren. allerdings gibt er mir nicht das richtige aus

System.out.println(Aktiv.aktiveMitglieder.get(0));

Ausgabe

version4.Aktiv@89ae9e

Wie wandel ich das jetzt um? bzw ruft er ja den kompletten array auf und sagt mir so den speicherplatz, aber nicht den wert des attributes. ein gewünschtes attribut das er meinetwegen ausgeben soll wäre der name. gleiches gilt wenn ich mit remove


zu der anderen variante:
wenn ich mit remove arbeite, wäre es ja schlauer vorher eine kopie der liste anzufertigen oder? wie würde das denn gehen, habe gerade bei google gesucht und da steht was von clone(), da man in java nicht so einfach objekte kopieren kann

@badday: dein vorschlag funktioniert doch nur bei arrays oder? ich hab aber eine arrayliste

gruß und vielen danke!
 
Zuletzt bearbeitet: (ergänzung)
Also dieses "version4.Aktiv@89ae9e" sieht mir stark nach Speicheradresse aus. Das möchte man natürlich nicht haben.

Welche Objekte speicherst du denn in diese Liste? Normale Strings oder sind das Objekte, die du erstellt hast?
Wenn es von dir erstellte Objekte (evtl. Person?) sind, so benötigen diese Objekte eine "public String toString()" Methode, die Java sagt, wie denn eine Stringdarstellung dieses Objekts aussieht. Sonst gibt Java nur die Speicheradresse an, da das Objekt für Java unbekannt ist. Die Methode könnte z.B. so aussehen (ist aber eine ganz normale Methode, in der du beliebigen Code ausführen kannst):
Code:
public String toString() {
  return "Stringdarstellung!";
}
 
scue schrieb:
zu der anderen variante:
wenn ich mit remove arbeite, wäre es ja schlauer vorher eine kopie der liste anzufertigen oder? wie würde das denn gehen, habe gerade bei google gesucht und da steht was von clone(), da man in java nicht so einfach objekte kopieren kann

Zu clone():
Sicherlich keine schlechte Variante... Die Frage ist ob eine Sicherung deiner ArrayList notwendig ist. Das solltest du für dich selbst entscheiden, je nachdem was dein Programm machen soll. Auch eine ArrayList enthält nur Referenzen auf die enthaltenen Objekte, d.h. du solltest immer im Hintergrund behalten, dass wenn eine Referenz "gekappt" wird, dieses Objekt auch nicht mehr so existiert.

Aber nun zu clone() zurück im Falle dass du eine Kopie anfertigen willst:
clone() ist eine Methode von java.lang.Object, d.h. jedes Objekt in Java hat diese Methode.
Nehmen wir einen Punkt aus der AWT Bibliothek mit den Koordinaten 12, 23, welche beim Anlegen dem Konstruktor übergeben werden. Jetzt sagen wir: wir wollen unser eben angelegtes Objekt clonen, d.h. den momentanen Objektzustand in eine weitere Instanz vom selben Typ schreiben/speichern/zuweisen. Da die clone() Methode als Rückgabewert immer :Object hat, wird per explizieter Typkonvertierung noch gesagt um welches Object es sich handelt. Geben wir das Object aus hat es dieselben Werte wie das ursprüngliche Objekt.
Code:
java.awt.Point p = new java.awt.Point( 12, 23 ); 
java.awt.Point q = (java.awt.Point) p.clone(); 
System.out.println( q );                       // java.awt.Point[x=12,y=23]

Wichtig dabei: clone() liefert dir sozusagen bei Arrays die NICHT primitive Datentypen speichern nur eine Art "flache Kopie", d.h. es wird die Struktur des Arrays/ArrayList "gecloned", aber nicht dessen Inhalte! Das sind nur weitere Zeiger auf die existierende Objekte!

Kleiner Tipp:
Schau dir die Collections nochmal an, erst in der API, dann in bestimmten Beispielen(google!) in denen Collections eingesetzt werden. Mach dir die Funktionsweise und die Anwendung bewusst. Ich hab momentan ein bisschen das gefühl dass du ohne notwendiges Vorwissen (über Arrays z.b.) in die Welt der Collections einsteigen willst, was nicht umbedingt ratsam ist.

Achja und zu deiner Pyramide: das kannst du über den Index lösen. Stichwort Modulo Operator. Hoffe das reicht dir als Gedankenstütze...
Und fürs nächste mal wäre es sinnvoller deinen bisherigen Code zu posten, damit nicht der Eindruck entsteht dass wir deine Hausaufgaben lösen sollen...
 
Zuletzt bearbeitet:
Zurück
Oben