Java中的List是有序,而且允许重复的,但有时候我们却不希望它存在重复的元素,那么有什么办法可以去除List里面重复的元素呢?
本文提供三种方法去除重复元素:
/** * 删除ArrayList中重复元素 * @author jimzhang */ public class DuplicateRemoval<E> { @SuppressWarnings("unchecked") public static void main(String[] args) { List<String> list = new ArrayList<String>(); list.add("c"); list.add("a"); list.add("a"); list.add("c"); new DuplicateRemoval().removeDuplicate3(list); } /** * 循环剔除重复元素 * @param list */ public void removeDuplicate1(List<E> list) { for (int i = 0; i < list.size() - 1; i++) { // i从第一个开始遍历 for (int j = list.size() - 1; j > i; j--) { // j从最后一个开始遍历 if (list.get(j).equals(list.get(i))) { list.remove(j); } } } System.out.println(list); } /** * 通过HashSet剔除(无序) * @param list */ public void removeDuplicate2(List<E> list) { Set<E> set = new HashSet<E>(list); // 通过HashSet去重复 list.clear(); // 清空原有list list.addAll(set); System.out.println(list); } /** * 通过HashSet剔除(有序) * @param list */ public void removeDuplicate3(List<E> list) { Set<E> set = new HashSet<E>(); List<E> newList = new ArrayList<E>(); // 创建一个list维持顺序 for (int i = 0; i < list.size(); i++) { E obj = list.get(i); if (set.add(obj)){ newList.add(obj); } } list.clear(); list.addAll(newList); System.out.println(list); } }
注:如果是对象需要用HashSet去重,则要将对象实现equals和hashCode方法。
相关推荐
在Java编程中,处理数据集合时,我们常常会遇到去除重复元素的需求。这可能是为了保持数据的唯一性,或者为了优化存储和计算效率。本文将详细介绍如何在Java中去除重复元素,主要关注数组和列表这两种常见数据结构。...
在实际开发中,我们经常需要从集合中去除重复元素,以保证数据的唯一性和正确性。今天,我们来分享一个Java集合去重示例,帮助大家更好地理解和应用这个概念。 Java集合去重示例的需求背景 -----------------------...
在Java中,去除单链表中的重复元素可以通过使用哈希集合(HashSet)来实现,该集合用于存储已经遍历过的元素。在遍历链表的过程中,我们将每个元素与集合中的元素进行比较,如果发现重复,则删除链表中的该元素。 ...
总的来说,Java中判断List是否存在重复元素的方法有很多种,包括使用HashSet、Stream API等。选择哪种方法取决于具体的需求,例如性能要求、代码可读性以及是否利用了Java 8的新特性。在实际开发中,理解这些方法的...
在Java编程中,处理数组和集合时,我们经常会遇到需要去除重复元素的情况。在这个主题中,我们将深入探讨如何使用ArrayList来过滤数组中的重复元素,并通过一个完整的Demo来演示这一过程。ArrayList是Java集合框架中...
以上三种方法都可以有效地去除List集合中的重复元素。其中: - **使用for循环**的方法直观易懂,但效率较低。 - **使用迭代器**的方法可以避免并发修改异常,是一种较为安全的解决方案。 - **使用HashSet特性**的...
Java中ArrayList去除重复元素(包括字符串和自定义对象) 在Java中,ArrayList是一种常用的集合类,但是在实际应用中,我们经常会遇到重复元素的问题,例如字符串或自定义对象的重复元素。在本文中,我们将介绍如何...
HashSet是一个不允许重复元素的集合,添加元素时,会自动忽略重复元素。 ```java List<Student> list = new ArrayList(); // 添加元素到list Set<Student> set = new HashSet(list); list.clear(); list.addAll(set...
在编程领域,尤其是在Java开发中,我们经常遇到需要处理数据集合,例如列表(List),去除其中的重复元素。"去掉list中的重复对象"这个话题是一个常见的需求,特别是在处理业务数据时,确保数据的唯一性至关重要。这...
Java 8的Stream API中的`distinct()`方法可以去除重复元素,但默认是基于对象的equals()和hashCode()方法。为了基于特定字段去重,我们可以创建一个辅助工具类`StreamUtil`,提供一个`distinctByKey`方法,该方法...
首先,Java集合框架中的`List`接口是有序的、允许重复元素的集合。我们可以通过`java.util.List`的`stream()`方法将其转换为流(Stream),然后利用流操作进行过滤。`filter()`方法是流操作的关键,它接收一个`...
本文将深入探讨如何利用Set集合去除List集合中的重复元素以及字符串中的重复子串。 首先,让我们理解Set集合的基本特点: 1. **一次只存一个元素**:Set集合不支持重复元素,当尝试添加一个已存在的元素时,该操作...
在处理JSON数据时,可能会遇到重复元素的情况,尤其是在合并多个数据源或者从数据库中读取数据时。去除这些重复项对于提高数据质量、减少存储空间以及优化性能都有重要意义。 ### 实现方法:使用HashSet去重 在...
Set接口下的集合类如HashSet不存储重复元素,可以方便地去除列表中的重复项。将List转换为Set,然后再转换回List即可: ```java List<PenBean> uniquePenBeanList = new ArrayList(new HashSet(penBeanList)); ``` ...
在处理数据时,我们有时需要去除集合中的重复元素。这里我们将详细讨论如何在`List`集合中去除重复对象的实现,特别是针对对象类型的集合。 首先,我们要明确一点:在Java中,当我们说两个对象是重复的,通常是指...
- `List`是一种常用的数据结构,在Java中,`List`接口是`Collection`框架的一部分,它允许存储元素的有序集合。 - 常见的`List`实现包括`ArrayList`和`LinkedList`等。 - 基本操作包括:添加(`add`)、删除(`...
`Set`是一个不允许有重复元素的集合,它会自动去重。在示例代码中,首先创建一个`TreeSet`对象,然后遍历字符串数组并将每个元素添加到`Set`中。由于`Set`不允许重复,所以重复的字符串会被自动忽略。最后,将`Set`...
在Java编程中,List集合是一种常用的集合类型,用于存储有序且可重复的元素。当我们从List集合中获取数据并返回时,通常会得到一个以中括号`[ ]`包裹的字符串表示,例如`"[element1, element2, element3]"`。然而,...
6. **去除重复元素**: - 可以使用`Set`接口的实现,如`HashSet`,因为集合不允许有重复元素。首先将`List`转换为`Set`,然后再将`Set`转换回`List`,即可去除重复项。 - 或者,可以使用`List`的`removeDuplicates...