Stream流根据对象的某个字段排序
1、根据OuterUserVo里面的id进行排序
2、reversed() 表示从大到小降序、去掉则表示升序排列
List<OuterUserVo> list = new ArrayList<>();
OuterUserVo vo = new OuterUserVo();
vo.setId(3L);
OuterUserVo vo1 = new OuterUserVo();
vo1.setId(2L);
OuterUserVo vo2 = new OuterUserVo();
vo2.setId(4L);
list.add(vo);
list.add(vo1);
list.add(vo2);
List<OuterUserVo> list1 = new ArrayList<>();
OuterUserVo vo3 = new OuterUserVo();
vo3.setId(5L);
OuterUserVo vo4 = new OuterUserVo();
vo4.setId(6L);
list1.add(vo3);
list1.add(vo4);
list.addAll(list1);
list.stream().sorted(Comparator.comparing(OuterUserVo::getId).reversed()).collect(Collectors.toList()).forEach(System.out::println);
Stream流根据对象的某个字段去重
@Test
public void test2() {
List<User> userList = new ArrayList<>();
userList.add(new User(1,"国王","123"));
userList.add(new User(1,"国王","666"));
userList.add(new User(1,"乞丐","123"));
userList.stream().
collect(Collectors.
collectingAndThen(
Collectors.toCollection(
() ->
new TreeSet<>(
Comparator.comparing(e -> e.getId()+e.getUsername()))), ArrayList::new)).forEach(System.out::print);
}