我有類TestObject帶有兩個變量:int A和int B. 我有一個TestObject的列表,我想刪除從列表中重複(包含相同的A和相同的乙可變對象。)從列表中刪除與其他對象重複的對象(獲得相同的變量)
- 對象1(A = 1,B = 1)
- 對象2(A = 2,B = 2 )對象3(A = 1,B = 1)
在這種情況下,我想從列表中刪除對象1或3,哪個並不重要。
對象是不同的情況下,這樣的標準:
LinkedHashSet<TestObject> hs = new LinkedHashSet<TestObject>();
hs.addAll(TestObjectList);
new.clear();
new.addAll(hs);
這是行不通的。 有沒有簡單的方法來實現我的目標? 我嘗試使用iterator中的迭代器:
ListIterator<TestObject> iter = TestObjectList.listIterator();
while(iter.hasNext()){
TestObject to = iter.next();
ListIterator<TestObject> iter2 = TestObjectList.listIterator();
while(iter2.hasNext()){
TestObject to2 = iter2.next();
if(to.A==to2.A && to.B == to2.B){
iter.remove();
}
}
}
,但我得到以下異常:
異常線程 「main」 java.util.ConcurrentModificationException」上線 「的TestObject TO2 = iter2.next( );
Unfortunnately,我沒有別的想法有什麼辦法,我可以實現這個目標 也許還有一個更簡單的方法
。?
爲什麼把它們放在'Set'不行?你在'TestObject'上覆蓋了'equals'和'hashCode'嗎? –
你有沒有嘗試比較或比較。 –
本網站有搜索功能。 – Raedwald