写点什么

Java 实现 List 中集合的元素进行排序

作者:共饮一杯无
  • 2022-11-12
    浙江
  • 本文字数:1958 字

    阅读完需:约 6 分钟

Java实现List中集合的元素进行排序

简单集合排序

    public static List<Integer> getIntegerList(){        List<Integer> integerList = new ArrayList<>();        integerList.add(23);        integerList.add(15);        integerList.add(35);        integerList.add(68);        integerList.add(43);        integerList.add(8);        return integerList;    }
/** * Integer集合排序 */ @Test public void sortIntegerList(){ List<Integer> integerList = getIntegerList(); System.out.println("排序前:"+integerList); //Integer本身有实现Comparable接口 Collections.sort(integerList); System.out.println("排序后:"+integerList); }
复制代码


输出:


排序前:[23, 15, 35, 68, 43, 8]排序后:[8, 15, 23, 35, 43, 68]
复制代码

根据对象集合某个字段排序

    public static List<User> getUserList(){        List<User> userList = new ArrayList<>();        userList.add(new User("小明",11,"北京",66));        userList.add(new User("小红",12,"上海",99));        userList.add(new User("小詹",14,"广州",77));        userList.add(new User("小龙",16,"深圳",55));        userList.add(new User("小斯",9,"迈阿密",33));        userList.add(new User("小布",12,"伦敦",88));        return userList;    }
@Test public void sortUserListByAge(){ List<User> userList = getUserList(); System.out.println("排序前:"+userList); //如果想直接通过Collections.sort(userList)排序,需要User实现Comparable接口,并重写compareTo方法 Collections.sort(userList, new Comparator<User>() { @Override public int compare(User o1, User o2) { //由小到大排序 return o1.getAge() - o2.getAge(); //由大到小排序 //return o2.getAge() - o1.getAge(); } }); System.out.println("排序后:"+userList); }
复制代码


输出:


排序前:[User(name=小明, age=11, city=北京, score=66), User(name=小红, age=12, city=上海, score=99), User(name=小詹, age=14, city=广州, score=77), User(name=小龙, age=16, city=深圳, score=55), User(name=小斯, age=9, city=迈阿密, score=33), User(name=小布, age=12, city=伦敦, score=88)]排序后:[User(name=小斯, age=9, city=迈阿密, score=33), User(name=小明, age=11, city=北京, score=66), User(name=小红, age=12, city=上海, score=99), User(name=小布, age=12, city=伦敦, score=88), User(name=小詹, age=14, city=广州, score=77), User(name=小龙, age=16, city=深圳, score=55)]
复制代码

根据对象集合多个字段排序

    @Test    public void sortUserList(){        List<User> userList = getUserList();        System.out.println("排序前:"+userList);        //如果想直接通过Collections.sort(userList)排序,需要User实现Comparable接口,并重写compareTo方法        Collections.sort(userList, new Comparator<User>() {            @Override            public int compare(User o1, User o2) {                //先按照年龄排序                int i = o1.getAge() - o2.getAge();                if(i == 0){                    //如果年龄相等再用分数进行排序                    return o1.getScore() - o2.getScore();                }                return i;            }        });        System.out.println("排序后:"+userList);    }
复制代码


输出:


排序前:[User(name=小明, age=11, city=北京, score=66), User(name=小红, age=12, city=上海, score=99), User(name=小詹, age=14, city=广州, score=77), User(name=小龙, age=16, city=深圳, score=55), User(name=小斯, age=9, city=迈阿密, score=33), User(name=小布, age=12, city=伦敦, score=88)]排序后:[User(name=小斯, age=9, city=迈阿密, score=33), User(name=小明, age=11, city=北京, score=66), User(name=小布, age=12, city=伦敦, score=88), User(name=小红, age=12, city=上海, score=99), User(name=小詹, age=14, city=广州, score=77), User(name=小龙, age=16, city=深圳, score=55)]
复制代码


本文内容到此结束了,

如有收获欢迎点赞👍收藏💖关注✔️,您的鼓励是我最大的动力。

如有错误❌疑问💬欢迎各位大佬指出。

主页共饮一杯无的博客汇总👨‍💻

保持热爱,奔赴下一场山海。🏃🏃🏃

发布于: 刚刚阅读数: 5
用户头像

鲜衣怒马意气风发,愿你归来仍是少年。 2018-10-19 加入

全栈开发者,CSDN博客专家,51CTO 专家博主,阿里云专家博主,华为云享专家,持续输出干货,欢迎关注。

评论

发布
暂无评论
Java实现List中集合的元素进行排序_Java_共饮一杯无_InfoQ写作社区