`
zhangjim
  • 浏览: 52827 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Java去除LIst中重复元素

阅读更多

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方法。

0
0
分享到:
评论

相关推荐

    java 去除重复元素

    在Java编程中,处理数据集合时,我们常常会遇到去除重复元素的需求。这可能是为了保持数据的唯一性,或者为了优化存储和计算效率。本文将详细介绍如何在Java中去除重复元素,主要关注数组和列表这两种常见数据结构。...

    java去除集合中重复元素示例分享 java去除重复

    在实际开发中,我们经常需要从集合中去除重复元素,以保证数据的唯一性和正确性。今天,我们来分享一个Java集合去重示例,帮助大家更好地理解和应用这个概念。 Java集合去重示例的需求背景 -----------------------...

    去除链表重复元素-Java 实现

    在Java中,去除单链表中的重复元素可以通过使用哈希集合(HashSet)来实现,该集合用于存储已经遍历过的元素。在遍历链表的过程中,我们将每个元素与集合中的元素进行比较,如果发现重复,则删除链表中的该元素。 ...

    Java判断List中有无重复元素的方法

    总的来说,Java中判断List是否存在重复元素的方法有很多种,包括使用HashSet、Stream API等。选择哪种方法取决于具体的需求,例如性能要求、代码可读性以及是否利用了Java 8的新特性。在实际开发中,理解这些方法的...

    java过滤数组中重复元素,完整demo

    在Java编程中,处理数组和集合时,我们经常会遇到需要去除重复元素的情况。在这个主题中,我们将深入探讨如何使用ArrayList来过滤数组中的重复元素,并通过一个完整的Demo来演示这一过程。ArrayList是Java集合框架中...

    在list集合中输入元素,去除重复的元素并输出

    以上三种方法都可以有效地去除List集合中的重复元素。其中: - **使用for循环**的方法直观易懂,但效率较低。 - **使用迭代器**的方法可以避免并发修改异常,是一种较为安全的解决方案。 - **使用HashSet特性**的...

    Java中ArrayList去除重复元素(包括字符串和自定义对象)

    Java中ArrayList去除重复元素(包括字符串和自定义对象) 在Java中,ArrayList是一种常用的集合类,但是在实际应用中,我们经常会遇到重复元素的问题,例如字符串或自定义对象的重复元素。在本文中,我们将介绍如何...

    java中List对象列表实现去重或取出及排序的方法

    HashSet是一个不允许重复元素的集合,添加元素时,会自动忽略重复元素。 ```java List&lt;Student&gt; list = new ArrayList(); // 添加元素到list Set&lt;Student&gt; set = new HashSet(list); list.clear(); list.addAll(set...

    去掉list中的重复对象

    在编程领域,尤其是在Java开发中,我们经常遇到需要处理数据集合,例如列表(List),去除其中的重复元素。"去掉list中的重复对象"这个话题是一个常见的需求,特别是在处理业务数据时,确保数据的唯一性至关重要。这...

    如何实现java8 list按照元素的某个字段去重

    Java 8的Stream API中的`distinct()`方法可以去除重复元素,但默认是基于对象的equals()和hashCode()方法。为了基于特定字段去重,我们可以创建一个辅助工具类`StreamUtil`,提供一个`distinctByKey`方法,该方法...

    java list 过滤

    首先,Java集合框架中的`List`接口是有序的、允许重复元素的集合。我们可以通过`java.util.List`的`stream()`方法将其转换为流(Stream),然后利用流操作进行过滤。`filter()`方法是流操作的关键,它接收一个`...

    利用Set集合去除List集合中重复元素、字符串中的重复子串

    本文将深入探讨如何利用Set集合去除List集合中的重复元素以及字符串中的重复子串。 首先,让我们理解Set集合的基本特点: 1. **一次只存一个元素**:Set集合不支持重复元素,当尝试添加一个已存在的元素时,该操作...

    java jsonarray 踢重 去重操作

    在处理JSON数据时,可能会遇到重复元素的情况,尤其是在合并多个数据源或者从数据库中读取数据时。去除这些重复项对于提高数据质量、减少存储空间以及优化性能都有重要意义。 ### 实现方法:使用HashSet去重 在...

    如何去掉list集合中重复的元素?.docx

    Set接口下的集合类如HashSet不存储重复元素,可以方便地去除列表中的重复项。将List转换为Set,然后再转换回List即可: ```java List&lt;PenBean&gt; uniquePenBeanList = new ArrayList(new HashSet(penBeanList)); ``` ...

    list集合去除重复对象的实现

    在处理数据时,我们有时需要去除集合中的重复元素。这里我们将详细讨论如何在`List`集合中去除重复对象的实现,特别是针对对象类型的集合。 首先,我们要明确一点:在Java中,当我们说两个对象是重复的,通常是指...

    两个list比较 取不同的对象

    - `List`是一种常用的数据结构,在Java中,`List`接口是`Collection`框架的一部分,它允许存储元素的有序集合。 - 常见的`List`实现包括`ArrayList`和`LinkedList`等。 - 基本操作包括:添加(`add`)、删除(`...

    文本去重(去除数组中重复项)

    `Set`是一个不允许有重复元素的集合,它会自动去重。在示例代码中,首先创建一个`TreeSet`对象,然后遍历字符串数组并将每个元素添加到`Set`中。由于`Set`不允许重复,所以重复的字符串会被自动忽略。最后,将`Set`...

    Java List集合返回值去掉中括号(&#39;[ ]&#39;)的操作

    在Java编程中,List集合是一种常用的集合类型,用于存储有序且可重复的元素。当我们从List集合中获取数据并返回时,通常会得到一个以中括号`[ ]`包裹的字符串表示,例如`"[element1, element2, element3]"`。然而,...

    创建包含随机数的列表,然后去掉其中的所有重复数字。

    6. **去除重复元素**: - 可以使用`Set`接口的实现,如`HashSet`,因为集合不允许有重复元素。首先将`List`转换为`Set`,然后再将`Set`转换回`List`,即可去除重复项。 - 或者,可以使用`List`的`removeDuplicates...

Global site tag (gtag.js) - Google Analytics