queue.remove Element trotzdem noch vorhanden.

Q

QueueRemove

Gast
Hallo Leute,

ich habe eine Java Queue:

Java:
Queue queue = new LinkedList<URL>();

In dieser Queue stecken also Java.net.URL drin.

Wenn ich nun z.B. folgendes mache (nur zum testen):

Java:
URL url = new URL("http://www.test.de");
queue.offer(url);

Ist die URL natürlich in der Queue. Jetzt aber mal das hier:

Java:
queue.remove(url);

Und die URL ist immer noch in der Queue oO
Wie kann ich also eine URL entfernen (nicht zurück geben, nur entfernen)?
 
G

Gast2

Gast
Nein, der Code funktioniert. Nach dem remove() Aufruf ist die URL aus der LinkedList entfernt.

Wenns bei dir nicht der Fall ist dann hast du anderen Code als da oben.
 

njans

Top Contributor
remove und remove(Object o) entfernen beide Objekte, der eine immer den Kopf der andere das gegebene Element.
Du solltest mal schauen, was die zurückgeben ;)
Die booleans sagen dir, ob das Entfernen erfolgreich war.

Edit: Mist zu langsam!

Hier das Beispiel, in dem geht es wunderbar.
Java:
                Queue<URL> queue = new LinkedList<>();
		URL url = new URL("http://www.test.de");
		queue.offer(url);
		System.out.println("Remove Success: " + queue.remove(url));
 
Q

QueueRemove

Gast
Ich habe das ganze mit einem JUnit Test getestet!!!!!

Java:
@Test
public void testRemove() {
	queue.remove(url);
		
	assertFalse("The url should not be in the queue any more.", queue.contains(url));
}

Und dieser Test liefert ein Failure, was bedeutet, dass die URL nach wie vor in der queue ist
.....
 
G

Gast2

Gast
höö? Der Test schlägt nur fehl wenn contains() true zurückliefert.

Poste doch mal deinen Test, damit wir den auch mal ausprobieren können.
 
Q

QueueRemove

Gast
Da hängt viel zu viel dran als das ich das posten könnte.

In meiner Warteschlange befinden sich ca. 5 Elemente vom Typ URL.

In meinem Test mache ich nun folgendes:

Java:
public class TestQueue {
	
        private static MyQueue queue;
	private static URL url;

	/**
	 * @throws java.lang.Exception
	 */
	@BeforeClass
	public static void setUpBeforeClass() throws Exception {
		queue = new MyQueue();
		url = new URL("http://www.test.de");
	}
	
	/**
	 * @throws java.lang.Exception
	 */
	@Before
	public void setUp() throws Exception {
		queue.offer(url);
	}

	/**
	 * Test method
	 */
	@Test
	public void testRemove() {
		System.out.println("" + queue.remove(url)); // hier wird true ausgegeben
				
		System.out.println(queue.isEmpty()); // hier false, weil ich mehrere Elemente in der queue habe
		assertFalse("The url should not be in the queue any more.", queue.contains(url)); // hier failure
	}
}
 
Q

QueueRemove

Gast
Ahhh.. dummer JUnit-Anfänger Fehler meiner seits.
Ich habe natürlich weitere Tests in der Klasse und mache
Jedes mal bei setUp() ein offer, weshalb das Element natürlich
öfters drin ist.

Ausm setUp() rauß und schon funktionierts.
 
G

Gast2

Gast
Ich hab deine Klasse MyQueue durch ne Queue ersetzt. Der Test läuft durch.

Warum ist url in deinem Test static? Kann es sein dass sich die url öfter in deiner Queue befindet? Ein remove() Aufruf löscht dann nur das erste Vorkommen der URL aus der Queue. Ein contains() würde dann immernoch true liefern.
Ansonsten muss der Fehler in deiner MyQueue Klasse liegen.
 
Q

QueueRemove

Gast
Jup du hast vollkommen recht, siehe meinen letzten Post.

Und die url ist static weil die JUnit-Methode

Java:
@BeforeClass
public static void setUpBeforeClass() throws Exception {
        
}

static ist.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Queue-Datenstruktur: nach dem Elementen entfernen, das Ergebnis ist immer noch nicht optimal. Java Basics - Anfänger-Themen 3
I BlueJ Queue Frage für Klausur Java Basics - Anfänger-Themen 2
N Vererbung Queue bestehend aus Superclass- und Subclass-Objekten Java Basics - Anfänger-Themen 7
B Zahlenfolge von Queue in Stack Java Basics - Anfänger-Themen 29
J Java Queue mit default Werten erstellen Java Basics - Anfänger-Themen 4
P Priority Queue Performance Java Basics - Anfänger-Themen 3
Chabub Hilfe bei Stacks und Queue Java Basics - Anfänger-Themen 2
G Stack und Queue Arbeitsblatt Java Basics - Anfänger-Themen 3
F Queue zyklisch Java Basics - Anfänger-Themen 8
D Queue vs. Stack Java Basics - Anfänger-Themen 6
L Queue mithilfe von 2 Stacks erstellen Java Basics - Anfänger-Themen 1
B Automatisierung von Jobs / @EJB Scheduler / Verhinderung, dass Queue überläuft Java Basics - Anfänger-Themen 2
A Priority Queue / Comparator Java Basics - Anfänger-Themen 6
J Queue Warteschlange Java Basics - Anfänger-Themen 3
J Liste,Queue,Stack sortieren Java Basics - Anfänger-Themen 2
Y Unendlicher Ringbuffer (Queue) Java Basics - Anfänger-Themen 49
C Stack und Queue in Aktion (Bitte Hilfe für die Klausur) Java Basics - Anfänger-Themen 7
E Stack vs Queue - Gemeinsamkeiten / Unterschiede Java Basics - Anfänger-Themen 7
H Collections StackOverflowError in einer Queue Java Basics - Anfänger-Themen 3
R Klassen Die lineare Datenstruktur Queue Java Basics - Anfänger-Themen 3
JokerBlacky Klassen Klasse Queue Klasse mit Attributen anhängen und auslesen können Java Basics - Anfänger-Themen 4
K Queue enq Fehler Java Basics - Anfänger-Themen 2
F Thread der auf eine Queue wartet, sicher beenden Java Basics - Anfänger-Themen 4
A Queue (Array) leeren Java Basics - Anfänger-Themen 1
F HTTP Get Queue Java Basics - Anfänger-Themen 7
J Queue zyklisch auslesen Java Basics - Anfänger-Themen 4
B Generische Queue programmieren Java Basics - Anfänger-Themen 5
T Priority-Queue Java Basics - Anfänger-Themen 9
S Integer/Value-Paar in Prio-Queue ohne Comparator Java Basics - Anfänger-Themen 5
P Array queue problem Java Basics - Anfänger-Themen 1
L Queue programmieren via BlueJ Java Basics - Anfänger-Themen 5
B Multithreading und eigene Queue entwickeln Java Basics - Anfänger-Themen 3
I Erste Schritte Queue Java Basics - Anfänger-Themen 14
G Queue auf einer Seite löschen, andre Seite schreiben Java Basics - Anfänger-Themen 3
G Queue mit int oder float Java Basics - Anfänger-Themen 3
P Priority Queue Java Basics - Anfänger-Themen 6
M Compiler-Fehler Queue als ArrayList mit Exceptions Java Basics - Anfänger-Themen 3
S Fehler beim Auslösen des ActionListeners in Verbindung mit einer Queue Java Basics - Anfänger-Themen 5
B Queue mit Daten aus einem Stack füllen Java Basics - Anfänger-Themen 21
P Collections Queue mittels ArrayList Java Basics - Anfänger-Themen 2
T Collections Queue<? extends Number> add() offer() Java Basics - Anfänger-Themen 13
S Queue als doppelt verkettete Liste Java Basics - Anfänger-Themen 2
R NullPointerException in Queue-Implementierung Java Basics - Anfänger-Themen 11
B Queue problem! Java Basics - Anfänger-Themen 2
R Queue abhören und Message in Browser ausgeben Java Basics - Anfänger-Themen 3
T Erstellung von Queue mit verkketten listen Java Basics - Anfänger-Themen 3
kulturfenster Stack / Queue Implementationen Java Basics - Anfänger-Themen 11
K Priority Queue - wo ist denn jetzt der Vorteil? Java Basics - Anfänger-Themen 7
W Iterator in Queue Java Basics - Anfänger-Themen 5
Q An erste Stelle in eine Queue eintragen Java Basics - Anfänger-Themen 4
H Stack und Queue Java Basics - Anfänger-Themen 6
M Threadsichere Queue in Java 1.5? Java Basics - Anfänger-Themen 2
G Int-Queue in String-Queue umwandeln Java Basics - Anfänger-Themen 5
A Queue erweitern Java Basics - Anfänger-Themen 13
P Queue, Stacks, Listen Java Basics - Anfänger-Themen 7
S Queue als Array implementiert get()? Java Basics - Anfänger-Themen 4
S Queue als verkettete Liste Java Basics - Anfänger-Themen 9
S Queue Java Basics - Anfänger-Themen 30
K Prüfen, ob Queue leer ist Java Basics - Anfänger-Themen 5
krgewb remove in for Java Basics - Anfänger-Themen 5
D remove Object von einer Liste von Obejcts Java Basics - Anfänger-Themen 3
G Java LinkedList remove Methode Java Basics - Anfänger-Themen 5
D remove arraylist by id not work Java Basics - Anfänger-Themen 6
H Collections JTree remove zeigt keinen Effekt! Java Basics - Anfänger-Themen 8
B Sorting List und Remove Java Basics - Anfänger-Themen 2
P Map - remove() ? Java Basics - Anfänger-Themen 46
Hacer remove at index Java Basics - Anfänger-Themen 31
J Methoden Doppelt verkettete Liste remove(Object) Java Basics - Anfänger-Themen 8
S Vererbung remove elment from Array Java Basics - Anfänger-Themen 0
J easy remove method Java Basics - Anfänger-Themen 1
K Methoden Probleme mit LinkedList.remove(object) Java Basics - Anfänger-Themen 1
U PriorityQueue remove Java Basics - Anfänger-Themen 2
M ArrayList - remove() löscht nicht! - weiß nicht wieso! Java Basics - Anfänger-Themen 8
B map.remove(long) Java Basics - Anfänger-Themen 5
B LinkedList remove Java Basics - Anfänger-Themen 5
I Liste Remove erstes Element Java Basics - Anfänger-Themen 5
D Wie Iterator Remove implementieren? Java Basics - Anfänger-Themen 11
W Treemap remove Java Basics - Anfänger-Themen 5
H Remove Methode von List Java Basics - Anfänger-Themen 6
W ArrayLists: Verständnisproblem bei remove() Java Basics - Anfänger-Themen 2
C Datentypen ArrayList.remove(index) hinterlässt leeres Feld Java Basics - Anfänger-Themen 5
H TreeMap.remove(value) - und nicht mit key! Geht das? Java Basics - Anfänger-Themen 18
S OOP ArrayList Klasse nachbauen, prob mit remove Java Basics - Anfänger-Themen 5
U ArrayList.remove(i) funktioniert nicht Java Basics - Anfänger-Themen 9
J Remove from an AraayList Java Basics - Anfänger-Themen 8
J Iterator remove()? Java Basics - Anfänger-Themen 5
T ArrayList#remove Java Basics - Anfänger-Themen 8
M ArrayList remove Element? Java Basics - Anfänger-Themen 3
B HashMap remove Java Basics - Anfänger-Themen 2
J TreeSet methode Remove Java Basics - Anfänger-Themen 13
C Add / Remove Panel Java Basics - Anfänger-Themen 2
J remove Problem Java Basics - Anfänger-Themen 8
M remove()-Methode eines Iterators Java Basics - Anfänger-Themen 3
megachucky remove bei Vector klappt nicht Java Basics - Anfänger-Themen 11
M Problem mit Iterator.remove() Java Basics - Anfänger-Themen 5
K Wie kann ich ein Element an den Anfang setzten ? Java Basics - Anfänger-Themen 1
pc pc pc pc pc letztes Element eines Arrays n Java Basics - Anfänger-Themen 3
heinrich172 Methoden Trotz gleichem Element stimmt Vergleich nicht? Java Basics - Anfänger-Themen 7
I Element n aus Datenbank Query (JPA / Hibernate) Java Basics - Anfänger-Themen 3
A Jedes zweite Element eines Arrays entfernen Java Basics - Anfänger-Themen 30

Ähnliche Java Themen

Neue Themen


Oben