Java的Stream实现对list实用操作【持续更新】
背景
在日常Java开发中会处理list数据,若是使用stream流,会让实现更简单,记录过程,方便备查。
一、排序
对list中元素进行排列
List<String> list = Arrays.asList("a1", "b2", "c3","a2","b4");
list = list.stream().sorted().collect(Collectors.toList());
System.out.print("返回结果为:"+list);
实现效果如下所示
二、最大值
在bean中获取某个属性的最大值。
代码如下所示。
@Test
public void testMax(){List<UserInfo> userList = new ArrayList<>();UserInfo oneUser = new UserInfo();oneUser.setUserId("111111");oneUser.setAge(20);oneUser.setName("wang");userList.add(oneUser);UserInfo twoUser = new UserInfo();twoUser.setUserId("222222");twoUser.setAge(24);twoUser.setName("li");userList.add(twoUser);userList.stream().max(Comparator.comparing(UserInfo::getAge)).ifPresent(maxAge -> System.out.println("最大年龄为:"+maxAge));
}
控制台打印效果如下。
最小值
如何取最小值
实现代码如下所示
@Test
public void testMin(){List<UserInfo> userList = new ArrayList<>();UserInfo oneUser = new UserInfo();oneUser.setUserId("111111");oneUser.setAge(20);oneUser.setName("wang");userList.add(oneUser);UserInfo twoUser = new UserInfo();twoUser.setUserId("222222");twoUser.setAge(24);twoUser.setName("li");userList.add(twoUser);userList.stream().min(Comparator.comparing(UserInfo::getAge)).ifPresent(minAge -> System.out.println("最小年龄为:"+minAge));
}
控制台打印日志如下所示。