两个List去掉重复元素放在一个List中去【两个Listsize值非常大】

本文介绍了一种使用Java操作List的方法,通过示例展示了如何找出两个List之间的共有元素,并去除这些共有元素后合并剩余部分。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/*
 * 思路:
 * 1.取得两个list的相同元素:list.retainAll(E)方法
 * 2.两个list分别去掉相同的元素:list.removeAll(E);
 * 3.将剩下的两个List分别加入到一个新的List去:addAll
 */
public class Test1 {
	public static void main(String[] args) {
		List list1 = new ArrayList();
		Random random = new Random();
		 
		//list1随机添加1千个数据
		for(int i=1;i<1000;i++){
			list1.add(random.nextInt(i)*10);
		}
		
		List list2 = new ArrayList();
		//list2随机添加1 万个数据
		for(int i=1;i<10000;i++){
			list2.add(random.nextInt(i)*100);
		}
		System.out.println("list1的大小:       "+list2.size());
		
		
		//temp用来保存两者共有的数据
		List temp = new ArrayList(list1);
		System.out.println(temp);
		
		//retainAll(Collection<?> c) 
		//仅在列表中保留指定 collection 中所包含的元素
		//这里的意思是temp只保留list2中有的元素
		
		//取得相同的元素
		temp.retainAll(list2);
		
		System.out.println(temp);
		//从list1和list2中去掉两者共同有的数据
		list1.removeAll(temp);
		list2.removeAll(temp);


		List list3 = new ArrayList();
		list3.addAll(list1);
		list3.addAll(list2);
		 
		System.out.println(list3.size()); 
		
		}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

野火少年

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值