Java Lambda表达式操作List集合合集

1、.forEach(),List迭代器

public static void main(String[] args) {
		List<String> deviceNos=new ArrayList<String>();
		deviceNos.add("301F7878445");
		deviceNos.add("301F7878466");
		deviceNos.add("");
		deviceNos.add("301F7878444");
		deviceNos.add(null);
		
		deviceNos.stream().forEach(deviceNo ->{
			System.out.println(deviceNo);
		});
	}

console输出:

301F7878445
301F7878466

301F7878444
null

2、.filter()过滤空值,空对象

public static void main(String[] args) {
		List<String> deviceNos=new ArrayList<String>();
		deviceNos.add("301F7878445");
		deviceNos.add("301F7878466");
		deviceNos.add("");
		deviceNos.add("301F7878444");
		deviceNos.add(null);
		
		// 过滤空值或空字符串
		List<String> realDeviceNos = deviceNos.stream().filter(string -> StringUtils.isNotEmptyAll(string))
				.collect(Collectors.toList());
		// 输出
		System.out.println("============过滤前 "+deviceNos);
		System.out.println("============过滤后 "+realDeviceNos);
	}

 输出

============过滤前 [301F7878445, 301F7878466, , 301F7878444, null]
============过滤后 [301F7878445, 301F7878466, 301F7878444]

3、.map(),从List集合中取某个字段合并成一个集合

public static void main(String[] args) {
//		List<String> deviceNos=new ArrayList<String>();
//		deviceNos.add("301F7878445");
//		deviceNos.add("301F7878466");
//		deviceNos.add("");
//		deviceNos.add("301F7878444");
//		deviceNos.add(null);
		
		
		List<DeviceInfo> deviceInfoLst=new ArrayList<DeviceInfo>();
		DeviceInfo deviceInfo1=new DeviceInfo();
		DeviceInfo deviceInfo2=new DeviceInfo();
		DeviceInfo deviceInfo3=new DeviceInfo();
		DeviceInfo deviceInfo4=new DeviceInfo();
		deviceInfo1.setId(1L);
		deviceInfo2.setId(203L);
		deviceInfo3.setId(164L);
		deviceInfo4.setId(88L);
		
		deviceInfoLst.add(deviceInfo1);
		deviceInfoLst.add(deviceInfo2);
		deviceInfoLst.add(deviceInfo3);
		deviceInfoLst.add(deviceInfo4);
		
		// 从deviceInfoLst集合中取DeviceInfo对象的Id属性封装成List集合
		List<Long> deviceIds = deviceInfoLst.stream().map(DeviceInfo::getId)
				.collect(Collectors.toList());
		// 输出
		System.out.println(deviceIds);
	}

输出

[1, 203, 164, 88]

 4、.distinct(),集合去重取某个字段属性封装成List集合

	public static void main(String[] args) {
//		List<DeviceInfo> deviceInfoLst=new ArrayList<DeviceInfo>();
//		DeviceInfo deviceInfo1=new DeviceInfo();
//		DeviceInfo deviceInfo2=new DeviceInfo();
//		DeviceInfo deviceInfo3=new DeviceInfo();
//		DeviceInfo deviceInfo4=new DeviceInfo();
//		deviceInfo1.setId(1L);
//		deviceInfo2.setId(203L);
//		deviceInfo3.setId(164L);
//		deviceInfo4.setId(88L);
//		
//		deviceInfoLst.add(deviceInfo1);
//		deviceInfoLst.add(deviceInfo2);
//		deviceInfoLst.add(deviceInfo3);
//		deviceInfoLst.add(deviceInfo4);
		
		List<String> deviceNos=new ArrayList<String>();
		deviceNos.add("301F7878445");
		deviceNos.add("301F7878466");
		deviceNos.add("301F7878466");
		deviceNos.add("301F7878444");
		deviceNos.add("301F7878444");
		
		// 集合去重取某个字段属性封装成List集合
		List<String> newDeviceNoLst=new ArrayList<String>();
		deviceNos.stream().distinct().forEach((deviceNo)->{newDeviceNoLst.add(deviceNo);});
		// 输出
		System.out.println(newDeviceNoLst);
	}

输出

[301F7878445, 301F7878466, 301F7878444]

 5、.removeIf(),删除或移除,当集合中某个对象的某个字段值等于某个值时从集合中删除或移除

public static void main(String[] args) {
//		List<String> deviceNos=new ArrayList<String>();
//		deviceNos.add("301F7878445");
//		deviceNos.add("301F7878466");
//		deviceNos.add("301F7878466");
//		deviceNos.add("301F7878444");
//		deviceNos.add("301F7878444");
		
		List<DeviceInfo> deviceInfoLst=new ArrayList<DeviceInfo>();
		DeviceInfo deviceInfo1=new DeviceInfo();
		DeviceInfo deviceInfo2=new DeviceInfo();
		DeviceInfo deviceInfo3=new DeviceInfo();
		DeviceInfo deviceInfo4=new DeviceInfo();
		
		deviceInfo1.setId(1L);
		deviceInfo2.setId(203L);
		deviceInfo3.setId(164L);
		deviceInfo4.setId(88L);
		
		deviceInfoLst.add(deviceInfo1);
		deviceInfoLst.add(deviceInfo2);
		deviceInfoLst.add(deviceInfo3);
		deviceInfoLst.add(deviceInfo4);
		
		// 输出
		List<Long> deviceNos = deviceInfoLst.stream().map(DeviceInfo::getId)
				.collect(Collectors.toList());
		System.out.println("==========删除或移除前 "+deviceNos);
		
		
		// 删除或移除,当集合中某个对象的某个字段值等于某个值时从集合中删除或移除
		deviceInfoLst.removeIf(listItem -> 164== listItem.getId());
		// 输出
		List<Long> rmDeviceNos = deviceInfoLst.stream().map(DeviceInfo::getId)
				.collect(Collectors.toList());
		System.out.println("==========删除或移除后 "+rmDeviceNos);
	}

输出

==========删除或移除前 [1, 203, 164, 88]
==========删除或移除后 [1, 203, 88]

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值