Set 的add方法
add(E e) 如果 set 中尚未存在指定的元素,则添加此元素(可选操作)。
01 public static List removeDuplicateWithOrder(List list) {
|
Java处理List中的重复值有两种方法,一种是经处理后得到新的无序list,另外一种则保留list原有的顺序。
方法一:使用Hastset的hashcode方法判断是否重复,数据不会重复,但顺序会变
- package array;
-
- import java.util.ArrayList;
- import java.util.HashSet;
- import java.util.List;
-
- public class ListOnlyValue_1 {
- public static void main(String[] args) {
- List<String> mylist = new ArrayList<String>();
- mylist.add("test");
- mylist.add("ab");
- mylist.add("cd");
- mylist.add("ab");
- mylist.add("sd");
- mylist.add("ab");
- mylist.add("cd");
- mylist.add("xyz");
- System.out.println("处理前的list:" + mylist);
-
- mylist = removeDuplicate(mylist);
- System.out.println("处理后的list:" + mylist);
- }
-
- public static List<String> removeDuplicate(List<String> list){
- HashSet<String> hashSet = new HashSet<String>(list);
- list.clear();
- list.addAll(hashSet);
-
- return list;
- }
- }
代码运行结果如下:
- 处理前的list:[test, ab, cd, ab, sd, ab, cd, xyz]
- 处理后的list:[test, sd, ab, xyz, cd]
方法二:通过Hashset的add方法判断是否已经添加过相同的数据,如果已存在相同的数据则不添加,维持list中元素原有的顺序。
- package array;
-
- import java.util.ArrayList;
- import java.util.HashSet;
- import java.util.Iterator;
- import java.util.List;
-
- public class ListOnlyValue_2 {
- public static void main(String[] args) {
- List<String> mylist = new ArrayList<String>();
- mylist.add("test");
- mylist.add("ab");
- mylist.add("cd");
- mylist.add("ab");
- mylist.add("sd");
- mylist.add("ab");
- mylist.add("cd");
- mylist.add("xyz");
- System.out.println("处理前的list:" + mylist);
-
- mylist = removeDuplicateWithOrder(mylist);
- System.out.println("处理后的list:" + mylist);
- }
-
- public static List<String> removeDuplicateWithOrder(List<String> list) {
- HashSet<String> hashSet = new HashSet<String>();
- List<String> newlist = new ArrayList<String>();
-
- for (Iterator iterator = list.iterator(); iterator.hasNext();) {
- String element = (String) iterator.next();
- if (hashSet.add(element)) {
- newlist.add(element);
- }
- }
-
- list.clear();
- list.addAll(newlist);
- return list;
- }
- }
代码运行结果如下:
- 处理前的list:[test, ab, cd, ab, sd, ab, cd, xyz]
- 处理后的list:[test, ab, cd, sd, xyz]
该方法运用了HashSet的add属性,若HashSet中已存在某元素,add方法是不会再将此元素add到HashSet中的,正是运用此原理,当HashSet能add一个元素时,newlist也跟着add一个元素,这样就得到一个维持原有顺序的没有重复值的新list。
分享到:
相关推荐
在Java编程中,处理数据集合时,我们常常会遇到去除重复元素的需求。这可能是为了保持数据的唯一性,或者为了优化存储和计算效率。本文将详细介绍如何在Java中去除重复元素,主要关注数组和列表这两种常见数据结构。...
在实际开发中,我们经常需要从集合中去除重复元素,以保证数据的唯一性和正确性。今天,我们来分享一个Java集合去重示例,帮助大家更好地理解和应用这个概念。 Java集合去重示例的需求背景 -----------------------...
Java中List对象列表实现去重或取出及排序的方法 在Java中,对List对象列表实现去重或取出及排序是一种常见的操作。下面将详细介绍相关的方法和实现。 1. 实体类重写equals和hashCode方法 在Java中,想要去重List...
在编程领域,尤其是在Java开发中,我们经常遇到需要处理数据集合,例如列表(List),去除其中的重复元素。"去掉list中的重复对象"这个话题是一个常见的需求,特别是在处理业务数据时,确保数据的唯一性至关重要。这...
一个list里面有多个对象,对象有几个字段,要求在对象里面不要有重复的数据的实现。
Java中 List《map》把里面map中某个key相同记录的其他key 的 value 合并 Java中 List《map》把里面map中某个key相同记录的其他key 的 value 合并
在Java编程中,处理列表(List)数据结构时,有时我们需要检查列表中是否存在重复的元素。本文将详细讲解如何使用Java来判断一个List中是否有重复的元素,并提供一种实用的实现方法。 首先,我们要理解Java中的List...
在Java中,去除单链表中的重复元素可以通过使用哈希集合(HashSet)来实现,该集合用于存储已经遍历过的元素。在遍历链表的过程中,我们将每个元素与集合中的元素进行比较,如果发现重复,则删除链表中的该元素。 ...
Java中ArrayList去除重复元素(包括字符串和自定义对象) 在Java中,ArrayList是一种常用的集合类,但是在实际应用中,我们经常会遇到重复元素的问题,例如字符串或自定义对象的重复元素。在本文中,我们将介绍如何...
首先,Java集合框架中的`List`接口是有序的、允许重复元素的集合。我们可以通过`java.util.List`的`stream()`方法将其转换为流(Stream),然后利用流操作进行过滤。`filter()`方法是流操作的关键,它接收一个`...
3. **去重操作**:通过创建一个`HashSet`并将其初始化为`List`的内容,自动去除了重复的元素。这是因为`HashSet`不允许有重复元素。 4. **转换回JSONArray**:最后,使用`JSONArray.fromObject()`方法将`HashSet`...
在Java编程中,处理数组和集合时,我们经常会遇到需要去除重复元素的情况。在这个主题中,我们将深入探讨如何使用ArrayList来过滤数组中的重复元素,并通过一个完整的Demo来演示这一过程。ArrayList是Java集合框架中...
List去重是Java中的一种常见操作,对于List中的重复元素进行去重,从而使得List中的元素变得独一无二。 Java中提供了多种方法来实现List去重,下面我们将对其中的一些方法进行介绍。 使用HashSet去重 HashSet是一...
以上三种方法都可以有效地去除List集合中的重复元素。其中: - **使用for循环**的方法直观易懂,但效率较低。 - **使用迭代器**的方法可以避免并发修改异常,是一种较为安全的解决方案。 - **使用HashSet特性**的...
2. **比较与去除重复项**: - 使用双重循环来逐个比较两个列表中的元素。 - 如果发现两个列表中有相同的`Student`对象,则从第一个列表中移除该对象。 - 移除后需要更新循环变量,以避免遗漏元素。 3. **使用`...
在Java编程中,当我们处理包含重复元素的List时,有时需要去除其中的重复项。以下文章将详细介绍8种针对List集合对象去重的方法,包括基于对象整体以及按特定属性进行去重。 ### 一、对象整体去重 #### 1. 使用Set...
使用如下方式调用`strip()`方法去除List集合返回值中的中括号: ```java String listString = "[element1, element2, element3]"; String strippedString = StringUtils.strip(listString, "[]"); ``` 在完成上述...
Java中List根据map的某个key去重是指在Java编程中,如何根据List中的Map对象的某个key值去掉重复的Map对象。今天我们将分享一篇关于Java中List根据map的某个key去重的代码,这篇代码分享了如何使用Java语言来实现...
java list集合和数组去除重复项,并记录重复次数个数。
Java 8的Stream API中的`distinct()`方法可以去除重复元素,但默认是基于对象的equals()和hashCode()方法。为了基于特定字段去重,我们可以创建一个辅助工具类`StreamUtil`,提供一个`distinctByKey`方法,该方法...