Listen in Jave

Thoomse

Grünschnabel
Listen in Java

Hallo Leute,

Wir haben folgendes Problem. Wir sollen mittels der Methode purge in einer Liste doppelt vorkommende Elemente entfernen und diese dannach ausgeben. Nur haben wir das Problem, dass purge (in Listoperation) nicht geändert werden darf. Dadurch, das in purge .hasMore benutzt wird, wird das letzte Element in unserer Liste nicht berücksichtigt, das es ja kein weiteren Nachfolger hat. Wir vermuten unseren Fehler in der .hasMore-Komponente in der Datei PointerListT, können aber das nicht genau sagen.... wir sitzen jetzt schon ewig dran und kommen nicht weiter ...
Wir wären überaus dankbar, wenn uns jemand von euch einen Tipp geben könnte, woran es liegt bzw wie man den Fehler beheben kann.

Mit freundlichen Grüßen
 

Anhänge

Zuletzt bearbeitet:
Also mal ehrlich, das sieht ja extrem nach verkomplizierter Schulaufgabe aus. Niemand der Praxiserfahrung hat, würde so programmieren - irgendwie habe ich zuviel Praxisnähe, um das, was Du da gezippt hast komplett zu verstehen. :confused:

Es gibt in Java ein ganzes Set von Collections.

Wenn Ihr das nicht unbedingt alles komplett nach beiliegendem Schema erstellen müßt, gäbe es eine extrem einfache und eine einfache Lösung:

Code:
List list = new ArrayList();
list.add("Heinz");
list.add("besucht");
list.add("Heinz");
list.add("http://rmbc.webnobis.com");
 
//1. einfache Möglichkeit:
Set set = new HashSet(list); //= nur 3 Einträge sind enthalten
 
//2. Möglichkeit = Erkennen des doppelten Eintrags:
Iterator it = set.iterator();
while (it.hasNext()) {
list.remove(it.next());
}
it = list.iterator();
while (it.hasNext()) {
System.out.println("doppelter Eintrag: " + it.next());
}

Ich hoffe, Du kannst das irgendwie in Dein Beispiel hinein verarbeiten.
 
Ja das ist ja auch eine Schulaufgabe...
Naja eigentlich eine Uni- Aufgabe....

Also danke für die Antwort, aber das hilft uns leider nicht weiter...
wir sollen nach dem Schema vorgehen... nur kommen wir nun nicht weiter...
wenn jemand uns helfen kann ... dann würden wir sehr dankbar sein
 
Also ich glaub, hier hat niemand Lust, in Code einzusteigen, der aus 1 bis 3 Zeichen langen Variablen besteht. (Außer Thomas viell.) :) .. Sorry
 
N'Abend,

also ich schließe mich der Vermutung der fehlerhaften hasMore() Methode in der inneren Klasse PointerListIteratorT an.
Code:
    public boolean hasMore() {
	    
	if (current!=null){
		if ( current.next!=null){
			return true; 
			}
			else {
			return false;
		}
	}
	else 	
		return false;		
    } // more
So wie ich das sehe, sollte die Methode schon bei current!=null true zurückgeben. Die zusätzliche Prüfung auf den Nachfolger macht IMHO keinen Sinn. Sonst würde er bei einer Liste mit einem Element ja überhaupt nicht durchiterieren, da es keinen Nachfolger gibt.

Gruß
THMD
 
Zurück