Java List排序

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
public class TestArrayList {
    public static void main(String[] args) {
  
        List<User> userList = new ArrayList<User>();
        buildData(userList);
        for(User u : userList){
            System.out.println(u.toString());
        }
  
        System.out.println("<-----------*****************------------>");
        userList.sort(new Comparator<User>(){
            @Override
            public int compare(User arg0, User arg1) {
                //这里是根据ID来排序,所以它为空的要剔除掉
                if(arg0.getId()==null || arg1.getId()==null) return 0;
                return arg0.getId().compareTo(arg1.getId());//这是顺序
            }
        });
        for(User u : userList){
            System.out.println(u.toString());
        }
        List<Integer> Integerlist = new ArrayList<>();
        Integerlist.add(3);
        Integerlist.add(5);
        Integerlist.add(1);
        Collections.reverse(Integerlist);
        System.out.println("倒序:"+Integerlist);
        Collections.sort(Integerlist);
        System.out.println("升序:"+Integerlist);
  
        //java8新特性
        Integerlist.add(3);
        Integerlist.add(5);
        Integerlist.add(1);
        Integerlist.sort(Integer::compareTo);
        System.out.println("java8新特性:"+Integerlist);
  
        Collections.sort(userList, (User h1, User h2) -> h1.getId() - h2.getId());
        System.out.println("aaaaaaaaa:"+userList);
  
        userList.stream().sorted(Comparator.comparing(User::getId)).collect(Collectors.toList()).forEach(System.out::println);
  
        System.out.println("<-----------以下:id降序,Password升序------------>");
        userList.stream().sorted(Comparator.comparing(User::getId).reversed()
                .thenComparing(Comparator.comparing(User::getPassword)))
                .collect(Collectors.toList()).forEach(System.out::println);
  
    }
    public static void buildData(List<User> userList){
        if(userList == null){
            userList = new ArrayList<User>();
        }
        User u1 = new User((Integer)1, "kobe1" ,"123456");
        User u2 = new User((Integer)2, "kobe2" , "123456");
        User u3 = new User((Integer)3, "kobe3" ,"123456");
        User u31 = new User((Integer)3, "kobe31" , "1");
        User u32 = new User((Integer)3, "kobe32" , "2");
        User u33 = new User((Integer)3, "kobe33" ,"3");
        User u4 = new User((Integer)4, "kobe4" ,"654321");
        User u5 = new User((Integer)5, "kobe5" , "666666");
        User u6 = new User((Integer)6, "kobe6" ,"888888");
        userList.add(u5);
        userList.add(u33);
        userList.add(u3);
        userList.add(u31);
        userList.add(u32);
        userList.add(u2);
        userList.add(u1);
        userList.add(u4);
        userList.add(u6);
    }
  
  
  
}

  

原帖地址:https://blog.csdn.net/qq_41029282/article/details/108348106

作者:假装空白
欢迎任何形式的转载,但请务必注明出处。
限于本人水平,如果文章和代码有表述不当之处,还请不吝赐教。

posted @   假装空白  阅读(77)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示