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( ...
随机推荐
- Python Unittest进行接口测试的简单示例
今年肯定是要把Python学到一定程度的,否则感觉自己混不下去了,那就开始半挣扎的咸鱼生活吧. ---------------------------------------------------- ...
- FTP搭建注意事项
正常的FTP搭建步骤很简单,随便网搜一篇文章就出来了 下面提出一个网址可供学习 https://blog.csdn.net/m0_38044299/article/details/81627607 但 ...
- GRPC代替webapi Demo。
gRPC 是一种与语言无关的高性能远程过程调用 (RPC) 框架. gRPC 的主要优点是: 现代高性能轻量级 RPC 框架. 协定优先 API 开发,默认使用协议缓冲区,允许与语言无关的实现. 可用 ...
- vue动态绘制四分之三圆环
参照网上的一个案例“参照的为绘制的是一个动态的圆环”,现在我的需求是改编成四分之三的圆环实现效果: 样式展示 canvas绘图基本操作设置就可以参考源代码链接:原文:https://blog.csdn ...
- you might not need jquery
What's the oldest version of IE you need to support? IE10 /**json**/ var request = new XMLHttpReques ...
- 基于socket.io客户端与服务端的相互通讯
socket.io是对websocket的封装,用于客户端与服务端的相互通讯.官网:https://socket.io/. 下面是socket.io的用法: 1.由于使用express开的本地服务,先 ...
- Mysql安装与问题合集
下载mysql https://dev.mysql.com/downloads/mysql/ 下载历史版本 看这篇文章 https://www.cnblogs.com/reyinever/p/8551 ...
- 【BZOJ2324】[ZJOI2011]营救皮卡丘 给定起点最小权K链可相交覆盖
#include<bits/stdc++.h> using namespace std; typedef long long ll; typedef ][]; int main() { i ...
- MySQL进阶11--DDL数据库定义语言--库创建/修改/删除--表的创建/修改/删除/复制
/*进阶 11 DDL 数据库定义语言 库和表的管理 一:库的管理:创建/修改/删除 二:表的管理:创建/修改/删除 创建: CREATE DATABASE [IF NOT EXISTS] 库名; 修 ...
- 1205 CSRF跨站请求与django中的auth模块使用
目录 今日内容 昨日回顾 基于配置文件的编程思想 importlib模块 简单代码实现 跨站请求伪造csrf 1. 钓鱼网站 如何实现 模拟该现象的产生 2. 解决问题 解决 {% csrf_toke ...