Java把多个list 合并成一个并去重
public static void main(String[] args) { List<User> list1 = new ArrayList<>();
User user01 = new User();
user01.setId(1L);
user01.setName("Bell");
list1.add(user01);
User user02 = new User();
user02.setId(2L);
user02.setName("Jack");
list1.add(user02); List<User> list2 = new ArrayList<>();
User user03 = new User();
user03.setId(2L);
user03.setName("Tom");
list2.add(user03);
User user04 = new User();
user04.setId(3L);
user04.setName("Tao");
list2.add(user04); Map<Long, User> target = new HashMap<Long, User>();
if (CollectionUtils.isNotEmpty(list1) && CollectionUtils.isNotEmpty(list2)) {
//把list1放入Map target中,key取用户id
for (User tempUser : list1) {
target.put(tempUser.getId(), tempUser);
}
for (User user2 : list2) {
Long userId = user2.getId();
if (target.containsKey(userId)) {
User temp = target.get(userId);
// 用户id重复,以list2中的用户姓名为准
temp.setName(user2.getName());
target.put(userId, temp);
} else {
target.put(userId, user2);
}
}
}
List<User> list = new ArrayList<User>(target.values()); System.out.println("对象数据类型的list合并并且去重结果====>:" + list);
}
/**
* 基础数据类型的list合并并且去重,业务场景比较简单
*/
private static void intList() {
List<Integer> list1 = new ArrayList<Integer>();
list1.add(1);
list1.add(2);
list1.add(3);
list1.add(4);
List<Integer> list2 = new ArrayList<Integer>();
list2.add(1);
list2.add(4);
list2.add(7);
list2.add(10);
List<Integer> listAll = new ArrayList<Integer>();
listAll.addAll(list1);
listAll.addAll(list2);
// 去重
listAll = new ArrayList<Integer>(new LinkedHashSet<>(listAll));
System.out.println("方法一:" + listAll);
list1.removeAll(list2);
list1.addAll(list2);
System.out.println("方法二:" + list1);
}
Java把多个list 合并成一个并去重的更多相关文章
- java 集合 HashSet 实现随机双色球 HashSet addAll() 实现去重后合并 HashSet对象去重 复写 HashCode()方法和equals方法 ArrayList去重
package com.swift.lianxi; import java.util.HashSet; import java.util.Random; /*训练知识点:HashSet 训练描述 双色 ...
- go语言:多个[]byte数组合并成一个[]byte
场景:在开发中,要将多个[]byte数组合并成一个[]byte,初步实现思路如下: 1.获取多个[]byte长度 2.构造一个二维码数组 3.循环将[]byte拷贝到二维数组中 package gst ...
- MySQL把多个字段合并成一条记录的方法
转:http://www.111cn.net/database/mysql/71591.htm MySQL把多个字段合并成一条记录的方法 在mysql中字段合并可以使用很多函数来实现,如可以利用 GR ...
- wpf dll和exe合并成一个新的exe
原文:wpf dll和exe合并成一个新的exe 微软有一个工具叫ILMerge可以合并dll exe等,但是对于wpf的应用程序而言这个工具就不好用了.我的这方法也是从国外一个博客上找来的.仅供大家 ...
- 将两个列不同的DataTable合并成一个新的DataTable
/// <summary> /// 将两个列不同(结构不同)的DataTable合并成一个新的DataTable /// </summary> ...
- HTML5利用canvas,把多张图合并成一张图片
需求分析,根据当前网页中的几张图片,在手机上长按,保存图片到相册或者发送给好友. drawCanvas(){ var self = this; var imgsrcArray = [ require( ...
- python将两个数组合并成一个数组的两种方法的代码
内容过程中,把写内容过程中常用的内容收藏起来,下面的资料是关于python将两个数组合并成一个数组的两种方法的内容,希望能对小伙伴们有帮助. c1 = ["Red","G ...
- 使用 Java 将多个文件压缩成一个压缩文件
使用 Java 将多个文件压缩成一个压缩文件 一.内容 ①使用 Java 将多个文件打包压缩成一个压缩文件: ②主要使用 java.io 下的类 二.源代码:ZipMultiFile.java pac ...
- SQL SERVER 如何把1列多行数据 合并成一列显示
示例 修改前:1列多行数据 修改后:合并成一列 示例语句 1 2 3 4 5 6 7 8 9 10 11 select 类别, 名称 = ( stuff( ...
随机推荐
- WPF GridView动态添加项并读取数据
假设数据库有如下表, 首先我们创建一个WPF工程,界面如下 <Window x:Class="WpfApplication2.MainWindow" xmlns=" ...
- VS.NET(C#)--2.6_ASP.NET服务器控件层次结构
ASP.NET服务器控件层次结构 语法 <asp:ControlType Id="ControlID" Rubat="Server" Property=& ...
- Canvas 绘制一个像素风电子时钟
想法是在 Canvas 上绘制由小方块组成的数字. 第一步是实现绘制小方块的方法,先画出一个边长为 5 的 10x10 个方块,使用两个 for 循环很简单就能完成. for (let i = 0; ...
- Python3 实例
一直以来,总想写些什么,但不知从何处落笔. 今儿个仓促,也不知道怎么写,就把手里练习过的例子,整理了一下. 希望对初学者有用,都是非常基础的例子,很适合初练. 好了,Follow me. 一.Pyth ...
- 分组函数(groupby、itemgetter)
from itertools import groupby from operator import itemgetter d1={'name':'liuyi','age':25,'city':'SZ ...
- Python_赋值运算符
1.赋值运算符
- 浅析 array_map array_walk
map 主要是为了得到你的回调函数处理后的新数组,要的是结果. walk 主要是对每个参数都使用一次你的回调函数,要的是处理的过程. walk 可以认为提供额外参数给回调函数,map不可 ...
- DateTime函数
一.初始化: DateTime dt = , , ); DateTime dt1 = DateTime.Now; DateTime dt2 = DateTime.Today; DateTime dt3 ...
- Java7--try - with - resources
从 Java 7 build 105 版本开始,Java 7 的编译器和运行环境支持新的 try-with-resources 语句,称为 ARM 块(Automatic Resource Manag ...
- Selenium常用API的使用java语言之4-环境安装之Selenium
1.通过jar包安装 点击Selenium下载 链接 你会看到Selenium Standalone Server的介绍: The Selenium Server is needed in order ...