gpt4 book ai didi

java - 从列表中删除重复元素

转载 作者:搜寻专家 更新时间:2023-10-31 08:04:56 24 4
gpt4 key购买 nike

我开发了一个数组列表。

ArrayList<String> list = new ArrayList<String>();

list.add("1");
list.add("2");
list.add("3");
list.add("3");
list.add("5");
list.add("6");
list.add("7");
list.add("7");
list.add("1");
list.add("10");
list.add("2");
list.add("12");

但如上所示,它包含许多重复元素。我想从该列表中删除所有重复项。为此,我认为首先需要将列表转换为集合。

Java有没有提供列表转集合的功能?是否有其他工具可以从列表中删除重复项?

最佳答案

您可以通过以下方式转换为集合:

Set<String> aSet = new HashSet<String>(list);

或者您可以转换为集合并返回列表:

list = new ArrayList<String>(new HashSet<String>(list));

然而,这两种方法都不太可能保留元素的顺序。为了保持顺序,您可以在迭代时使用 HashSet 作为辅助结构:

List<String> list2 = new ArrayList<String>();
HashSet<String> lookup = new HashSet<String>();
for (String item : list) {
if (lookup.add(item)) {
// Set.add returns false if item is already in the set
list2.add(item);
}
}
list = list2;

在重复的情况下,只有第一次出现的结果会出现在结果中。如果您只希望最后一次出现,那就是一个更棘手的问题。我会通过反转输入列表、应用上述内容然后反转结果来解决这个问题。

关于java - 从列表中删除重复元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10370750/

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