首页  >  文章  >  Java  >  如何在保持顺序的同时从 Java 列表中删除重复项?

如何在保持顺序的同时从 Java 列表中删除重复项?

Patricia Arquette
Patricia Arquette原创
2024-11-03 18:19:03672浏览

How Can I Remove Duplicates from a List in Java While Maintaining Order?

从列表中删除重复项

在 Java 中使用列表时,可能需要删除重复元素。一种常见的尝试是在添加元素之前使用 for 循环检查每个元素是否已存在于列表中。但是,这种方法效率低下并且容易出错。

问题:

您描述了在尝试从 Customer 对象列表中删除重复项时遇到的问题。您的代码使用 for 循环在添加客户之前检查客户是否尚未出现在列表中。

解决方案:

提供的解决方案提供了更高效和更高效的解决方案。在保留列表原始顺序的同时删除重复项的简洁方法。它利用 LinkedHashSet 类,该类根据插入顺序维护元素的链接列表,并自动删除重复项。

使用 LinkedHashSet:

以下代码片段演示了如何使用 LinkedHashSet 删除重复项同时保持顺序:

<code class="java">List<Customer> depdupeCustomers = new ArrayList<>(new LinkedHashSet<>(customers));</code>

此行从客户列表中创建一个新的 LinkedHashSet,从而产生一组唯一的客户。然后该集合将转换回有序列表(ArrayList)。

修改原始列表:

如果您想更改原始列表,可以使用以下代码:

<code class="java">Set<Customer> depdupeCustomers = new LinkedHashSet<>(customers);
customers.clear();
customers.addAll(dedupeCustomers);</code>

此代码将列表转换为 LinkedHashSet,删除重复项,清除原始列表,然后将唯一元素添加回其中,从而有效地从原始列表中删除重复项。

以上是如何在保持顺序的同时从 Java 列表中删除重复项?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn