List<Object> a = new ArrayList<Object>(); List<Object> b = new ArrayList<Object>(); a.add("111"); a.add("222"); b.add("222"); b.add("333"); a.removeAll(b); a.addAll(b); System.out.println(a.size());
如果数据量较大,考虑到效率问题可采用下面的方法
List<Object> a = new ArrayList<Object>(); List<Object> b = new ArrayList<Object>(); a.add("111"); a.add("222"); b.add("222"); b.add("333"); Set<Object> set = new HashSet<Object>(); set.addAll(a); set.addAll(b); List<Object> c = new ArrayList<Object>(set); System.out.println(c.size());
如果需要保持列表顺序可以使用LinkedHashSet
list中如果是String的话上述方法没问题,如果是对象的话应该重写对象的equals方法,而且对象中要有唯一的标识,比如id,也可以是其他,标识相同则认为两个对象是相同的,示例如下:
User类:
public class User { private String id; private String name; private String age; public String getId() { return id; } public void setId(String id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getAge() { return age; } public void setAge(String age) { this.age = age; } @Override public boolean equals(Object obj) { return obj instanceof User&& this.id != null && this.id.equals(((User)obj).getId()); } }
测试类:
import java.util.ArrayList; import java.util.HashSet; import java.util.List; import java.util.Set; public class TestList { public static void main(String[] args) { List<Object> a = new ArrayList<Object>(); List<Object> b = new ArrayList<Object>(); for(int i=0;i<2;i++){ User user = new User(); user.setId(i+""); a.add(user); } for(int i=1;i<3;i++){ User user = new User(); user.setId(i+""); b.add(user); } a.removeAll(b); a.addAll(b); System.out.println(a.size()); Set<Object> set = new HashSet<Object>(); set.addAll(a); set.addAll(b); List<Object> c = new ArrayList<Object>(set); System.out.println(c.size()); } }
相关推荐
在Java中处理JSON数据时,经常需要对JSON数组进行各种操作,其中去重是一个常见的需求。本文将详细介绍如何使用Java对`JSONArray`进行去重操作,并深入探讨背后的原理和技术细节。 ### JSON与Java JSON...
【Java中List集合对象去重及按属性去重的8种方法】 在Java编程中,当我们处理包含重复元素的List时,有时需要去除其中的重复项。以下文章将详细介绍8种针对List集合对象去重的方法,包括基于对象整体以及按特定属性...
在Java编程中,合并多个List并去除重复元素是一项常见的任务,尤其在处理数据集合时。在给定的案例中,我们看到两种不同的方法来完成这个任务。首先,让我们详细讲解这两种方法。 ### 1. 使用`addAll()`和`...
在Java8中,合并两个Map中的元素是一项常见的操作,尤其是在处理数据集合时。本文将深入探讨如何正确地合并两个Map,重点介绍两种方法:`Map.merge()` 和 `Stream.concat()`。这两种方法在处理Map合并时有各自的特点...
题目中提到了"java 数组的合并.zip",可能涉及到多个数组合并并去重的问题。可以使用ArrayList或其他集合类先分别添加各个数组,然后通过Set进行去重: ```java Integer[] array1 = {1, 2, 3}; Integer[] array2 = {...
现在,我们想去重这个List,保留每个id唯一的对象,并且将相同id的对象的name属性合并到一起。 我们可以使用HashMap来解决这个问题。首先,我们创建一个HashMap,key是id,value是User对象。然后,我们遍历List,...
例如,在数据处理中,我们可能需要判断两个List或Map是否相等,以便对数据进行合并或去重。在日常开发中,这种操作也非常常见。 判断List和Map是否相等并合并List中相同的Map需要遵循特定的标准和方法。我们可以...
一个list里面有多个对象,对象有几个字段,要求在对象里面不要有重复的数据的实现。
Java集合去重示例分享 Java集合去重示例是Java编程中常见的问题之一。在实际开发中,我们经常需要从集合中去除重复元素,以保证数据的唯一性和正确性。今天,我们来分享一个Java集合去重示例,帮助大家更好地理解...
- **重复记录处理**:合并过程中,可能需要考虑如何处理重复记录,例如基于某个键值(如ID)进行去重。 - **排序与索引**:合并后可能需要根据特定字段对数据进行排序,或者重建索引以优化查询性能。 5. **代码...
集合操作是Java开发中常见的任务,JavaUtils可能包含了对`List`、`Set`、`Map`等集合进行操作的工具,例如快速合并两个列表、去重、排序、查找元素、转换集合等。这些工具可以简化处理集合时的代码逻辑。 4. **...
这可能包括但不限于:对集合进行排序、去重、合并、分割、查找、过滤等。例如,`CollectionsUtil.sortList()`对列表进行排序,`CollectionsUtil.removeDuplicates()`移除集合中的重复元素。 3. **排序**: Java中...
8. **集合转换**:集合之间可以通过`addAll()`方法进行合并,`Collections.sort()`用于对List排序,`Arrays.asList()`将数组转换为List,`stream()`方法则引入了Java 8的流式处理。 9. **并发编程**:在多线程环境...
列表操作是许多LeetCode问题的基础,包括搜索、排序、去重、合并等。 3. **字符串**:字符串在编程中广泛用于处理文本。Java和Python都提供了丰富的字符串方法。在LeetCode中,字符串问题包括子串查找、反转、模式...
它可以实现集合的合并、分割、排序、去重等操作。 11. **JsonUtil**:JSON(JavaScript Object Notation)序列化和反序列化的工具类,用于将Java对象转换成JSON字符串,或将JSON字符串转换回Java对象。Java的`...
4. **ListUtil**:针对Java集合框架中的List接口提供辅助方法,如列表合并、去重、排序、过滤等。例如,`isEmpty()`检查List是否为空,`removeNull()`移除列表中的null元素。 5. **MapUtil**:对于Map接口的操作,...
这个工具类可能会提供一些实用方法,比如集合的转换、过滤、映射、合并、去重等,这些都是在处理数据时常见的需求。例如,可能有对 `Collections.sort()` 方法的封装,以支持自定义排序规则;或者有用于检查集合是否...
3. **集合工具类(CollectionUtil)**:集合处理是Java开发中的重要环节,CollectionUtil提供了一系列针对List、Set、Map等集合的操作,如集合的合并、分割、去重、排序等,使得集合操作更加便捷。 4. **IO流工具类...
4. **集合操作**:集合框架是Java的核心部分,工具类可能提供对`List`、`Set`、`Map`等数据结构的便捷操作,如排序、过滤、查找、合并、拆分等。例如,对集合进行快速的去重、转换、统计等操作。 5. **IO操作**:...