从列表中删除重复项
在 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中文网其他相关文章!