[JAVA] geordnetes Einfügen in Liste

polti09

Cadet 4th Year
Registriert
Apr. 2005
Beiträge
125
Hallo,

als erstes ist zu sagen, dass ich noch ein totaler Anfänger bin, was das Programmieren betrifft.

so und nun zu meinem Problem:
ich möchte ein Objekt vom Typ T in eine bestehende Liste sortiert einfügen.
Zur Verfügung stehen mir die Klassen LinkedList<T> und Node<T>, welche ich selbst geschrieben habe,

für das Einfügen schreibe ich nun eine Methode insert(T obj)
hier mal ein kleines Grundgerüst, bitte nicht lachen:
Code:
	public boolean insert(T obj){
		
		Node<T> tempNode = list.head;
		[B]T tempObj = (T) tempNode;[/B]
		while(tempNode.getNext() != null){
			
			if (tempObj.compareTo(obj)== 0) {
				list.addLast(obj);
				return false;
			}
			tempNode = tempNode.getNext();
			tempObj = (T) tempNode;
		}
		
		return true;
	}

also so wie es da geschrieben steht, ist es natürlich Mist, vom Inhalt mal ganz abgesehen.
ich bekomme nämlich eine ClassCastException (in markierter Zeile)

so, und nun zu meinem Problem:
ich habe keine Idee, wie ich über die bestehende Liste "LinkedList<T> list" navigieren kann, um die richtige Einfügeposition zu finden
mein bisheriger Plan, das über die Klasse Node zu bewältigen, wird ja mit besagter Exception quittiert.
mit dem Iterator aus java.util.* kann ich zwar navigieren, aber leider nicht Einfügen,
weshalb ich mit meinem Latain am Ende bin.

deshalb suche ich hier nach Hilfe!!!

gruß
polti09
 
Wenn du schon ne Liste implementierst, dann wäre es doch günstig, wenn diese die Methode zum geordneten Einfügen selber kennt. Innerhalb der Liste kannst du doch besser navigieren und die Zeiger der Nodes umhängen.
 
erstmal danke für deine antwort!

das ist sicher richtig, und dann würde ich auch gar nicht in solche "schwulitäten" kommen.
allerdings möchte ich es auf diesem wege lösen und die bestehende Klasse LinkedList<T>
nicht weiter verändern!

vielleicht kann mir ja jemand helfen, es auf die art und weise zu lösen, wie im eingangspost beschrieben.

gruß
 
Dann wirst du wohl oder übel eine neue Liste aufbauen müssen, indem du die bestehenden Nodes soweit in eine neue Liste kopierst, bis das neue Element reinpasst und dann die restlichen Nodes hinten dranhängst. Anders wüsste ich jetzt nicht.
Normalerweise dürftest du die Nodes in der Liste von aussen nicht verändern können, was du ja tun müsstest, wenn du ein Element dazwischen hängst.
 
Zurück
Oben