Klassen Collections

Hi

Ich bin absoluter JAVA Anfänger (Kurs seit Jänner) und hänge bei den Collections seit Stunden fest.

Ich bräuchte folgendes:
Eine sortierte Liste, wo ich jederzeit Elemente hinzufügen und löschen kann, vor und zurückspringen.
Ich experimentiere nun schon mit einem TreeSet herum, jedoch mag mich das nicht so ganz.

Java:
	static Set<Spieler> duellSpieler = new TreeSet<>();
...
		duellSpieler.add(spieler[2]);
		duellSpieler.add(spieler[3]);
		duellSpieler.add(spieler[4]);
		duellSpieler.add(spieler[5]);
		duellSpieler.add(spieler[6]);
...
Spieler_aktuell = duellSpieler.iterator().next()
Spieler_aktuell = duellSpieler.iterator().next()
Spieler_aktuell = duellSpieler.iterator().next()

Ich übernehme hier in duellSpieler einige verschiedene Spieler, bekomme aber danach immer nur den ersten Eintrag, wie setze ich den Zeiger weiter, daß ich den nächsten bekomme ? und wie kann ich den wieder um einen Eintrag zurücksetzen um das vorige Element zu bekommen ???

danke schon mal für eure Ideen .
lg
 
G

Gast2

Gast
Wenn du iterator() aufrufst wird jedesmal ein neuer Iterator erstellt. Erstell dir vorher einen einzigen Iterator auf dem du dann immer next() aufrufst.
 

tuttle64

Bekanntes Mitglied
Damit der TreeSet richtig funktioniert muss die Klasse Spieler das Interface Comparable implementieren. Wenn dies zutrifft, zeigt folgendes Programm wie man durch ein TreeSet iterieren kann.

Code:
	Set<Spieler> duellSpieler = new TreeSet<Spieler>();
	duellSpieler.add(new Spieler("Spieler 1"));
	duellSpieler.add(new Spieler("Spieler 2"));
	duellSpieler.add(new Spieler("Spieler 3"));
	
	Iterator<Spieler> it = duellSpieler.iterator();
	
	// erste Möglichkeit mit Iterator
	while(it.hasNext()) {
		System.out.println(it.next());
	}
	
	// zweite Möglichkeit mit for-each
	for (Spieler s : duellSpieler) {
		System.out.println(s.toString());
	}

hasNext() liefert boolean zurück, entsprechend true wenn noch ein Element in der Liste vorhanden ist oder false wenn nicht. Mit next() wird dann entsprechend das nächste Element geholt, ansonsten die Schleife abgebrochen. Eine weitere Möglichkeit ist die for-each-Schleife, bei der ein Element der Liste und die Liste angegeben werden muss, durch die iteriert werden muss. Hier muss man kein next() oder hasNext() verwenden, cool :cool:

Die Klasse Spieler habe ich für diese kleine Demo so implementiert:

Code:
public class Spieler implements Comparable<Spieler> {
	private String name;

	public Spieler(String n) {
		this.name = n;
	}

	public String toString() {
		return this.name;
	}

	public int compareTo(Spieler s) {
		return this.name.compareTo(s.name);
	}
}
 
Zuletzt bearbeitet:
Danke für die info, aber noch folgende Frage:

Ich bräuchte das nicht nur zum nächsten, sondern auch wieder einzelschritte zurück.
Wie bekomme ich den jewils vorigen, oder gibt es dafür andere Collections ?

lg
 

Landei

Top Contributor
Du kannst das TreeSet am Ende in eine Liste "füllen", die du dann per Index oder per ListIterator durchforsten kannst.
 
also zuerst das treeset erstellen, da dies geordnet ist, anschließend der reihe nach durchgehen und in eine LinkedList kopieren.
Kann ich das ganze set auch auf einmal in eine leere Liste kopieren ?

edit:
ach egal, zur Übung mach ich mal beides einzeln :idea:
 
Zuletzt bearbeitet:
H

hüteüberhüte

Gast
Kann ich das ganze set auch auf einmal in eine leere Liste kopieren ?

Die einzelnen List-Implementierungen haben einen Konstruktor, denen eine Collection übergeben werden kann. Jede Collection hat einen Iterator. Wenn die Spieler gar nicht sortiert sein müssen (alle TreeSet-Elemente müssen sich vergleichen lassen), dann kannst du auch direkt eine List nehmen, um die Spieler zu speichern.
 
Zuletzt bearbeitet von einem Moderator:

Landei

Top Contributor
Ja, man kann einer Liste eine andere Collection im Konstruktor übergeben.

Alternativ kann man auch alles ungeordnet in eine Liste werfen und dann [c]Collections.sort(meineListe);[/c] aufrufen.
 
hab inzwischen meinen TreeSet sortiert erstellt, werde eure Möglichkeiten weiterhin im Auge behalten.
Weitere Threads mitmeinen Fragen werden kommen

Danke vorerst einmal.
 
H

hüteüberhüte

Gast
Alternativ kann man auch alles ungeordnet in eine Liste werfen und dann [c]Collections.sort(meineListe);[/c] aufrufen.

Stimmt, das ist quasi Jacke wie Hose. Aber bei beiden Möglichkeiten kommt es darauf an, ob die Liste/das Set überhaupt/generell sortiert sein muss. Wenn nicht, lässt sich Zeit einsparen.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
U Sortierung in collections testen Java Basics - Anfänger-Themen 11
X Collections.sort als Lambda Java Basics - Anfänger-Themen 14
berserkerdq2 Geht collections.sort bei allen? Linkedhashset, ArrayList, HashSet etc. Java Basics - Anfänger-Themen 4
O Collections.sort und List.sort mit Lambda Verwirrung Java Basics - Anfänger-Themen 5
B Collections.sort mit zwei Bedingungen? Java Basics - Anfänger-Themen 4
I Collections.shuffle funktioniert nicht Java Basics - Anfänger-Themen 1
M Collections Frage Java Basics - Anfänger-Themen 1
D Methoden Collections.shuffle mit bestimmtem Startwert? Java Basics - Anfänger-Themen 8
T Java Collections Java Basics - Anfänger-Themen 58
X Collections Collections Maps Frage Java Basics - Anfänger-Themen 4
C Collections: private Map Java Basics - Anfänger-Themen 4
V Collections Java Basics - Anfänger-Themen 3
A Collections Java Basics - Anfänger-Themen 2
P collections.sort Java Basics - Anfänger-Themen 2
R Iterationsreihenfolge über Collections Java Basics - Anfänger-Themen 4
J Polymorphie Iteratoren statt Collections Java Basics - Anfänger-Themen 13
H Etwas wie sort() / sorted() in JAVA-Collections? Java Basics - Anfänger-Themen 5
F Collections ArrayList oder Hashmap mittel Collections.sychronised Java Basics - Anfänger-Themen 6
S Bestimmte Objekte aus Collections anwählen/herausbekommen Java Basics - Anfänger-Themen 8
M Collections mit >2 type Parametern? Java Basics - Anfänger-Themen 8
S Frage zu Collections.frequency() Java Basics - Anfänger-Themen 3
T Collections Übersicht Collections Java Basics - Anfänger-Themen 4
X Collections Inhalt von zwei Collections prüfen Java Basics - Anfänger-Themen 4
A Generische Collections und Vererbung Java Basics - Anfänger-Themen 2
K Telefonbuch Implementation mit Java Collections Java Basics - Anfänger-Themen 4
G Collections.binarySearch(LinkedList): cannot find method Java Basics - Anfänger-Themen 6
S Collections Sortieren von 3 Collections nach "einer Sortierung" Java Basics - Anfänger-Themen 3
T Kleine Frage zu Collections Java Basics - Anfänger-Themen 3
A Collections und ArrayList Java Basics - Anfänger-Themen 2
S Klasse Mit Collections Java Basics - Anfänger-Themen 32
X DB4O Collections and Arrays, brauche dringend Hilfe! Java Basics - Anfänger-Themen 3
D Datentypen Generische Collections und Warnings Java Basics - Anfänger-Themen 8
K Aufgabe Collections Java Basics - Anfänger-Themen 2
D Collections - subList erstellen Java Basics - Anfänger-Themen 4
S Frage zu Enumerator der trad.Collections Java Basics - Anfänger-Themen 8
M Instanzen, Referenzen und Collections Java Basics - Anfänger-Themen 3
Dit_ Collections.sort(..); | Anwendung Java Basics - Anfänger-Themen 4
T array erweitern/flexible ohne collections usw. Java Basics - Anfänger-Themen 3
S Collections Java Basics - Anfänger-Themen 13
M Collections{Liste aus Objekten erzeugen] Java Basics - Anfänger-Themen 19
S generics und Collections#unmodifiableList Java Basics - Anfänger-Themen 2
G Wann Arrays, wann Collections? Java Basics - Anfänger-Themen 36
N Collections Sort ArrayList<> Java Basics - Anfänger-Themen 7
N Suche Infos zu Maps - Collections Java Basics - Anfänger-Themen 4
G erstes Arbeiten mit Collections Java Basics - Anfänger-Themen 17
Zed Collections? ArrayList, Vector. Java Basics - Anfänger-Themen 2
M Collections kopieren (ArrayList<Point>) Java Basics - Anfänger-Themen 3
T Fragen zu Collections Java Basics - Anfänger-Themen 2
J Collections "schachteln" Java Basics - Anfänger-Themen 5
ff Java Collections Java Basics - Anfänger-Themen 4
H Collections Frameworks Java Basics - Anfänger-Themen 38
T Object Collections durchsuchen und nutzen Java Basics - Anfänger-Themen 6
S Mit Collections elemente sammeln Java Basics - Anfänger-Themen 7
D Collections.sort() frage Java Basics - Anfänger-Themen 6
G Java Collections Framework : id + 5 Werte , gibt es sowas Java Basics - Anfänger-Themen 4
frau-u Collections und Interfaces Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben