stream流

2019-12-16 11:15:30 浏览数 (3)

  • 排序
代码语言:txt复制
    public void test1(){
        ArrayList<User> userList = new ArrayList<>();
        User user1 = new User("tian",1);
        User user2 = new User("aian", 1);
        User user3 = new User("wen", 3);
        userList.add(user1);
        userList.add(user2);
        userList.add(user3);
        List<User> userSortedList = userList.stream().sorted((u1, u2) ->
        {
            if (u1.getAge() == u2.getAge()) {
                return -u1.getName().compareTo(u2.getName());
            } else {
                return u1.getAge().compareTo(u2.getAge());
            }
        }).collect(Collectors.toList());
        System.out.println(userSortedList);
        
    }
    public class User{
        private String name;
        private Integer age;

注意点:

  1. 首次测试的时候,u1一直无法用到getName这个方法,原因是因为userList里面的泛型是Object,而不是User;
  2. 当使用sout打印输出的时候,一直无法打印,原因是User类没有重写toString的方法;$$

1 人点赞