List与Map的常用操作

简述

在正常使用集合(list)的时候经常涉及到两个集合的交集,并集,补集的运算,这篇文章主要解决项目中常见的几种运算操作

1 求两个List的交集

List<Long> uidsArrayList = new ArrayList<Long>();
Map<Long, Boolean> existMap = new HashMap<Long, Boolean>();
for (SearchVo vo:  voList) {
	List<Long> mids = vo.getMids();
		for (Long midIter : mids ) {
			if (existMap .get(midIter ) == null) {
				existMap .put(midIter , true);
				uidsArrayList .add(midIter );
			} else {
				continue;
			}
		}
	}

2 两个集合中不同的元素提取

Map<Long,Integer> oldMap= new HashMap<Long,Integer>(oldList.size() +newList.size());
if(CollectionUtils.isNotEmpty(oldList)){
	for (Long oldid : oldList) {
		oldCidExistMap.put(oldid, 1);
	}
}
		
if(CollectionUtils.isNotEmpty(newList)){
	for (Long newid : newList) {
		Integer integer = oldExistMap.get(newid);
		if(null != integer){
			oldExistMap.put(newid, ++integer);
	               continue;                    
	    }   
}
		
for(Map.Entry<Long, Integer> entry:oldExistMap.entrySet()){                    
            if(entry.getValue()==1){                    
					System.out.println(entry.getKey());
            }                    
} 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值