Java8常用Lambda表达式

List<User> users=new ArrayList<>();
//用户集合中返回userId字段为空的集合
List<User> users1 = users.stream().filter(obj -> obj.getUserId().equals("")).collect(Collectors.toList());
//用户集合中返回userId字段为空的集合中的第二个开始查 返回第一个用户对象
User user = users.stream().filter(obj -> obj.getUserId().equals("")).skip(1).findAny().get();
//用户集合中返回userId字段为空的集合中返回第一个用户对象
User user1 = users.stream().filter(obj -> obj.getUserId().equals("")).findFirst().get();
//用户集合中返回userId字段为空的集合中返回第一个用户对象(串行查询跟上面结果一样,并行查询返回最快回来的那个)
User user2 = users.stream().filter(obj -> obj.getUserId().equals("")).findAny().get();
//根据年龄降序排序用户 不加reversed()方法默认升序
List<User> collect = users.stream().sorted(Comparator.comparing(User::getAge).reversed()).collect(Collectors.toList());

//返回用户里面年龄大于10岁的用户id
List<String> collect3 = collect.stream().filter(obj -> obj.getAge() > 10).map(User::getUserId).collect(Collectors.toList());
//年龄最大的用户是多少岁
Integer integer = users.stream().map(User::getAge).max(Integer::compare).get();
//返回每个用户的用户id
List<String> collect1 = users.stream().map(User::getUserId).collect(Collectors.toList());
//转换用户id的值为小写值
List<String> collect2 = collect1.stream().map(String::toLowerCase).collect(Collectors.toList());

//返回一个map key是年龄 value是该年龄有多少人还有对于filter与map同时使用的话记得先用filter再用map方法。
Map<Integer, Long> collect4 = users.stream().collect(groupingBy(User::getAge, counting()));
//返回一个map key是年龄 value是属于该年龄的集合
Map<Integer, List<User>> collect5 = users.stream().collect(groupingBy(User::getAge));

 

上一篇:python-减少pandas DataFrame中的列数


下一篇:java8 对集合的操作