`

java去除list中的重复值

    博客分类:
  • java
阅读更多

Set 的add方法

add(E e) 如果 set 中尚未存在指定的元素,则添加此元素(可选操作)。

01 public static List removeDuplicateWithOrder(List list) {

 

Java处理List中的重复值有两种方法,一种是经处理后得到新的无序list,另外一种则保留list原有的顺序。

方法一:使用Hastset的hashcode方法判断是否重复,数据不会重复,但顺序会变

  1. package array; 
  2.  
  3. import java.util.ArrayList; 
  4. import java.util.HashSet; 
  5. import java.util.List; 
  6.  
  7. public class ListOnlyValue_1 { 
  8.     public static void main(String[] args) { 
  9.         List<String> mylist = new ArrayList<String>(); 
  10.         mylist.add("test"); 
  11.         mylist.add("ab"); 
  12.         mylist.add("cd"); 
  13.         mylist.add("ab"); 
  14.         mylist.add("sd"); 
  15.         mylist.add("ab"); 
  16.         mylist.add("cd"); 
  17.         mylist.add("xyz"); 
  18.         System.out.println("处理前的list:" + mylist); 
  19.          
  20.         mylist = removeDuplicate(mylist); 
  21.         System.out.println("处理后的list:" + mylist); 
  22.     } 
  23.      
  24.     public static List<String> removeDuplicate(List<String> list){ 
  25.         HashSet<String> hashSet = new HashSet<String>(list); 
  26.         list.clear(); 
  27.         list.addAll(hashSet); 
  28.          
  29.         return list; 
  30.     } 

代码运行结果如下:

  1. 处理前的list:[test, ab, cd, ab, sd, ab, cd, xyz] 
  2. 处理后的list:[test, sd, ab, xyz, cd] 

方法二:通过Hashset的add方法判断是否已经添加过相同的数据,如果已存在相同的数据则不添加,维持list中元素原有的顺序。

  1. package array; 
  2.  
  3. import java.util.ArrayList; 
  4. import java.util.HashSet; 
  5. import java.util.Iterator; 
  6. import java.util.List; 
  7.  
  8. public class ListOnlyValue_2 { 
  9.     public static void main(String[] args) { 
  10.         List<String> mylist = new ArrayList<String>(); 
  11.         mylist.add("test"); 
  12.         mylist.add("ab"); 
  13.         mylist.add("cd"); 
  14.         mylist.add("ab"); 
  15.         mylist.add("sd"); 
  16.         mylist.add("ab"); 
  17.         mylist.add("cd"); 
  18.         mylist.add("xyz"); 
  19.         System.out.println("处理前的list:" + mylist); 
  20.  
  21.         mylist = removeDuplicateWithOrder(mylist); 
  22.         System.out.println("处理后的list:" + mylist); 
  23.     } 
  24.  
  25.     public static List<String> removeDuplicateWithOrder(List<String> list) { 
  26.         HashSet<String> hashSet = new HashSet<String>(); 
  27.         List<String> newlist = new ArrayList<String>(); 
  28.          
  29.         for (Iterator iterator = list.iterator(); iterator.hasNext();) { 
  30.             String element = (String) iterator.next(); 
  31.             if (hashSet.add(element)) { 
  32.                 newlist.add(element); 
  33.             } 
  34.         } 
  35.          
  36.         list.clear(); 
  37.         list.addAll(newlist); 
  38.         return list; 
  39.     } 

代码运行结果如下:

  1. 处理前的list:[test, ab, cd, ab, sd, ab, cd, xyz] 
  2. 处理后的list:[test, ab, cd, sd, xyz] 

该方法运用了HashSet的add属性,若HashSet中已存在某元素,add方法是不会再将此元素add到HashSet中的,正是运用此原理,当HashSet能add一个元素时,newlist也跟着add一个元素,这样就得到一个维持原有顺序的没有重复值的新list。

分享到:
评论

相关推荐

    java 去除重复元素

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

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

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

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

    Java中List对象列表实现去重或取出及排序的方法 在Java中,对List对象列表实现去重或取出及排序是一种常见的操作。下面将详细介绍相关的方法和实现。 1. 实体类重写equals和hashCode方法 在Java中,想要去重List...

    去掉list中的重复对象

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

    list去掉重复对象

    一个list里面有多个对象,对象有几个字段,要求在对象里面不要有重复的数据的实现。

    Java中 List《map》把里面map中某个key相同记录的其他key 的 value 合并

    Java中 List《map》把里面map中某个key相同记录的其他key 的 value 合并 Java中 List《map》把里面map中某个key相同记录的其他key 的 value 合并

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

    在Java编程中,处理列表(List)数据结构时,有时我们需要检查列表中是否存在重复的元素。本文将详细讲解如何使用Java来判断一个List中是否有重复的元素,并提供一种实用的实现方法。 首先,我们要理解Java中的List...

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

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

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

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

    java list 过滤

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

    java jsonarray 踢重 去重操作

    3. **去重操作**:通过创建一个`HashSet`并将其初始化为`List`的内容,自动去除了重复的元素。这是因为`HashSet`不允许有重复元素。 4. **转换回JSONArray**:最后,使用`JSONArray.fromObject()`方法将`HashSet`...

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

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

    Java中对List去重 Stream去重的解决方法

    List去重是Java中的一种常见操作,对于List中的重复元素进行去重,从而使得List中的元素变得独一无二。 Java中提供了多种方法来实现List去重,下面我们将对其中的一些方法进行介绍。 使用HashSet去重 HashSet是一...

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

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

    两个list比较 取不同的对象

    2. **比较与去除重复项**: - 使用双重循环来逐个比较两个列表中的元素。 - 如果发现两个列表中有相同的`Student`对象,则从第一个列表中移除该对象。 - 移除后需要更新循环变量,以避免遗漏元素。 3. **使用`...

    Java中List集合对象去重及按属性去重的8种方法

    在Java编程中,当我们处理包含重复元素的List时,有时需要去除其中的重复项。以下文章将详细介绍8种针对List集合对象去重的方法,包括基于对象整体以及按特定属性进行去重。 ### 一、对象整体去重 #### 1. 使用Set...

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

    使用如下方式调用`strip()`方法去除List集合返回值中的中括号: ```java String listString = "[element1, element2, element3]"; String strippedString = StringUtils.strip(listString, "[]"); ``` 在完成上述...

    list和数组去重,记录重复次数

    java list集合和数组去除重复项,并记录重复次数个数。

    Java中List根据map的某个key去重的代码

    Java中List根据map的某个key去重是指在Java编程中,如何根据List中的Map对象的某个key值去掉重复的Map对象。今天我们将分享一篇关于Java中List根据map的某个key去重的代码,这篇代码分享了如何使用Java语言来实现...

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

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

Global site tag (gtag.js) - Google Analytics