Java8使用Stream对集合的操作集锦

本文收集了网络上Stream流的用法和我在项目中的实际使用案例,不对其原理进行描述(俺也不会,哈哈)。
以下使用有错误、疑问或者更好的写法欢迎评论区讨论学习。
同时也欢迎各位大佬评论区留下本文中未提及的好用的api方法讨论学习。

创建业务逻辑测试实体类。

在这里插入图片描述

加入测试数据,以代码示例都以此测试数据为依据。

	public static List<User> getUserList() {
   
	    List<User> list = new ArrayList<>();
	    list.add(User.builder().id(1L).userName("剑帝").age(18).height(BigDecimal.valueOf(170.7)).createTime(DateUtil.parseDateTime("2023-05-21 17:17:17")).build());
	    list.add(User.builder().id(2L).userName("街霸").age(20).height(BigDecimal.valueOf(165.6)).createTime(DateUtil.parseDateTime("2023-05-20 18:17:17")).build());
	    list.add(User.builder().id(3L).userName("红眼").age(25).height(BigDecimal.valueOf(185.7)).createTime(DateUtil.parseDateTime("2023-06-21 18:17:17")).build());
	    list.add(User.builder().id(4L).userName("瞎子").age(27).height(BigDecimal.valueOf(180.5)).createTime(DateUtil.parseDateTime("2023-05-30 17:17:17")).build());
	    list.add(User.builder().id(5L).userName("枪炮师").age(23).height(BigDecimal.valueOf(175.7)).createTime(DateUtil.parseDateTime("2022-05-21 17:17:17")).build());
	
	    return list;
	}

1、去重方法

需要注意的是 distinct() 在不修改对象重写的equals和hashCode方法情况下,对象中的每个属性值必须完全相等才会被去重。
如果需要对某个属性进行去重的话可以重写equals和hashCode方法,或者使用如下写法。(这也是网上给出的普遍方法,我个人认为这个方法有一点瑕疵,就是新的数据和旧数据顺序不一致了,欢迎评论区留下更好的方法!)
【示例】在测试数据基础上新增去重的测试数据

	public static 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值