`
低调衬着那一抹妖娆
  • 浏览: 30804 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

java list合并去重

阅读更多
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 jsonarray 踢重 去重操作

    在Java中处理JSON数据时,经常需要对JSON数组进行各种操作,其中去重是一个常见的需求。本文将详细介绍如何使用Java对`JSONArray`进行去重操作,并深入探讨背后的原理和技术细节。 ### JSON与Java JSON...

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

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

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

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

    java 实现多个list 合并成一个去掉重复的案例

    在Java编程中,合并多个List并去除重复元素是一项常见的任务,尤其在处理数据集合时。在给定的案例中,我们看到两种不同的方法来完成这个任务。首先,让我们详细讲解这两种方法。 ### 1. 使用`addAll()`和`...

    详解Java8合并两个Map中元素的正确姿势

    在Java8中,合并两个Map中的元素是一项常见的操作,尤其是在处理数据集合时。本文将深入探讨如何正确地合并两个Map,重点介绍两种方法:`Map.merge()` 和 `Stream.concat()`。这两种方法在处理Map合并时有各自的特点...

    java 去除重复元素

    题目中提到了"java 数组的合并.zip",可能涉及到多个数组合并并去重的问题。可以使用ArrayList或其他集合类先分别添加各个数组,然后通过Set进行去重: ```java Integer[] array1 = {1, 2, 3}; Integer[] array2 = {...

    根据list中对象的属性去重和排序小结(必看篇)

    现在,我们想去重这个List,保留每个id唯一的对象,并且将相同id的对象的name属性合并到一起。 我们可以使用HashMap来解决这个问题。首先,我们创建一个HashMap,key是id,value是User对象。然后,我们遍历List,...

    判断List和Map是否相等并合并List中相同的Map

    例如,在数据处理中,我们可能需要判断两个List或Map是否相等,以便对数据进行合并或去重。在日常开发中,这种操作也非常常见。 判断List和Map是否相等并合并List中相同的Map需要遵循特定的标准和方法。我们可以...

    list去掉重复对象

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

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

    Java集合去重示例分享 Java集合去重示例是Java编程中常见的问题之一。在实际开发中,我们经常需要从集合中去除重复元素,以保证数据的唯一性和正确性。今天,我们来分享一个Java集合去重示例,帮助大家更好地理解...

    DBF文件合并

    - **重复记录处理**:合并过程中,可能需要考虑如何处理重复记录,例如基于某个键值(如ID)进行去重。 - **排序与索引**:合并后可能需要根据特定字段对数据进行排序,或者重建索引以优化查询性能。 5. **代码...

    javautils一些工具类

    集合操作是Java开发中常见的任务,JavaUtils可能包含了对`List`、`Set`、`Map`等集合进行操作的工具,例如快速合并两个列表、去重、排序、查找元素、转换集合等。这些工具可以简化处理集合时的代码逻辑。 4. **...

    飞龙Java工具类

    这可能包括但不限于:对集合进行排序、去重、合并、分割、查找、过滤等。例如,`CollectionsUtil.sortList()`对列表进行排序,`CollectionsUtil.removeDuplicates()`移除集合中的重复元素。 3. **排序**: Java中...

    JAVA集合例子

    8. **集合转换**:集合之间可以通过`addAll()`方法进行合并,`Collections.sort()`用于对List排序,`Arrays.asList()`将数组转换为List,`stream()`方法则引入了Java 8的流式处理。 9. **并发编程**:在多线程环境...

    Javapython for leetcode 1 array2 list3 string4 hashtable5 m.zip

    列表操作是许多LeetCode问题的基础,包括搜索、排序、去重、合并等。 3. **字符串**:字符串在编程中广泛用于处理文本。Java和Python都提供了丰富的字符串方法。在LeetCode中,字符串问题包括子串查找、反转、模式...

    27个java工具类

    它可以实现集合的合并、分割、排序、去重等操作。 11. **JsonUtil**:JSON(JavaScript Object Notation)序列化和反序列化的工具类,用于将Java对象转换成JSON字符串,或将JSON字符串转换回Java对象。Java的`...

    java工具类(多年积累) 下载后导入就可以使用~

    4. **ListUtil**:针对Java集合框架中的List接口提供辅助方法,如列表合并、去重、排序、过滤等。例如,`isEmpty()`检查List是否为空,`removeNull()`移除列表中的null元素。 5. **MapUtil**:对于Map接口的操作,...

    工具类_java工具类_java_

    这个工具类可能会提供一些实用方法,比如集合的转换、过滤、映射、合并、去重等,这些都是在处理数据时常见的需求。例如,可能有对 `Collections.sort()` 方法的封装,以支持自定义排序规则;或者有用于检查集合是否...

    JAVA工具模块TBOX

    3. **集合工具类(CollectionUtil)**:集合处理是Java开发中的重要环节,CollectionUtil提供了一系列针对List、Set、Map等集合的操作,如集合的合并、分割、去重、排序等,使得集合操作更加便捷。 4. **IO流工具类...

    JAVA常用工具类,一个五年开发经验的工程师上传的,但是要分我拿来1分让你们下载

    4. **集合操作**:集合框架是Java的核心部分,工具类可能提供对`List`、`Set`、`Map`等数据结构的便捷操作,如排序、过滤、查找、合并、拆分等。例如,对集合进行快速的去重、转换、统计等操作。 5. **IO操作**:...

Global site tag (gtag.js) - Google Analytics