java双重List集合删除重复数据迭代器写法
时间: 2024-10-21 16:09:54 浏览: 33
java的List集合和列表迭代器的使用
在Java中,如果你想要从双层列表(例如List<List<String>>)中删除重复的数据,可以使用两个嵌套的循环配合Iterator。这里是一个基本的例子:
```java
import java.util.ArrayList;
import java.util.Iterator;
public class RemoveDuplicates {
public static void removeDuplicates(List<List<String>> list) {
for (int i = 0; i < list.size(); i++) {
List<String> innerList = list.get(i);
Iterator<List<String>> iterator = list.listIterator(i); // 使用listIterator遍历整个列表
while (iterator.hasNext()) {
List<String> sublist = iterator.next();
if (i != iterator.index() && isDuplicate(innerList, sublist)) { // 避免检查自身
iterator.remove(); // 删除重复的子列表
}
}
}
}
private static boolean isDuplicate(List<String> listA, List<String> listB) {
return !listA.equals(listB) && listA.containsAll(listB); // 检查是否完全相同的元素集
}
// 示例用法
public static void main(String[] args) {
List<List<String>> list = new ArrayList<>();
// 填充数据...
removeDuplicates(list);
System.out.println("处理后的列表: " + list);
}
}
```
在这个例子中,我们首先通过`isDuplicate`方法检查子列表是否是原列表的子集,如果是则认为它们是重复的,并使用`iterator.remove()`方法删除其中一个。
阅读全文