Ich wollte testen, wie man eine Kreuzung zwischen zwei Listen bekommt, hier ist mein Code:
%Vor%Dies erzeugt:
%Vor%Aber ich mache keine Entfernungen. Warum produziert diese Ausnahme?
Update I:
Verwenden:
%Vor%Produziert:
%Vor%Da list2 von list1 unterstützt wird, verursacht das Entfernen von Elementen aus list1 diese Ausnahme. Endlich funktionierende Version:
%Vor%oder
%Vor%oder
%Vor%Danke für Ihre Antworten alle.
Als Dokumentation sagt die Methode List.retainAll()
Behält nur die Elemente in dieser Liste bei, die in der angegebenen Sammlung enthalten sind (optionale Operation). Mit anderen Worten, entfernt alle Elemente, die nicht in der angegebenen Sammlung enthalten sind. [Betonung meiner]
retainAll entfernt Elemente aus der Liste, auf der es aufgerufen wird.
retainAll entfernt alle Elemente, die nicht in der angegebenen Liste sind.
Die Dokumentation besagt auch, dass retainerAll UnsupportedOperationException auslöst, wenn die Listenimplementierung diese Methode nicht unterstützt.