gpt4 book ai didi

java - 如何使用 Iterator 类从 List 中删除重复元素?

转载 作者:行者123 更新时间:2023-12-02 09:22:37 25 4
gpt4 key购买 nike

我正在学习Iterator类以及如何使用它,我们的老师给我们出了一个问题,使用这个类来循环整个List,找到重复项,然后删除它们。我尝试过以下代码:

void removeDuplicates(List<String> list) {

Iterator<String> iterator = list.iterator();

while (iterator.hasNext()) {

if (list.contains(iterator.next())) {

iterator.remove();

}

}

}

当然,这段代码是行不通的,因为每个元素都在 List 本身中,所以它会删除 List 中的每个元素,使其为空。我如何解决这个误解(特别是 if 条件语句),以便我能够使 Iterator 删除所有重复元素?

最佳答案

我不喜欢直接操作原始对象,也许在多线程并发中不安全。

void removeDuplicates(List<String> list) {
Set set = new HashSet();
Iterator<String> iterator = list.iterator();

while (iterator.hasNext()) {
Object element = iterator.next();
if (!set.add(element)){
iterator.remove();
}
}
}

关于java - 如何使用 Iterator 类从 List 中删除重复元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58575974/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com