egg*_*ter 8 java arraylist duplicates
我有一个非常冗长的ArrayList,其中包含一些对象,但无疑是重复的.找到并删除这些重复项的最佳方法是什么.注意:我编写了一个布尔返回的compareObjects()方法.
e.d*_*vic 32
List<Item> result = new ArrayList<Item>();
Set<String> titles = new HashSet<String>();
for( Item item : originalList ) {
if( titles.add( item.getTitle() ) {
result.add( item );
}
}
Run Code Online (Sandbox Code Playgroud)
你提到过写一个compareObjects方法.实际上,您应该覆盖两个对象相等时equals返回的方法true.
话虽如此,我只会返回一个包含原始元素的新列表:
ArrayList<T> original = ...
List<T> uniques = new ArrayList<T>();
for (T element : original) {
if (!uniques.contains(element)) {
uniques.add(element);
}
}
Run Code Online (Sandbox Code Playgroud)
这仅在您覆盖时有效equals.有关更多信息,请参阅此问题.
| 归档时间: |
|
| 查看次数: |
53584 次 |
| 最近记录: |