• java——集合——Collections工具类——Collections集合工具类的方法——sort(List,Comparator)


    Collection集合工具类的方法三

    • java.utils.Collections是集合工具类,用来对集合进行操作。部分方法如下:
      public staticvoid sort(Listlist,Comparator ):将集合中元素按照指定规则排序。

    • Comparator和Comparable的区别
      Comparable:自己(this)和别人(参数)比较,自己需要实现Comparable接口,重写比较的规则compareTo方法

    • Comparator:相当于找一个第三方的裁判,比较两个

    • Comparator的排序规则:
      o1-o2:升序


    public class Demo03Sort {
        public static void main(String[] args) {
            ArrayList<Integer> list01 = new ArrayList<>();
            list01.add(1);
            list01.add(3);
            list01.add(2);
            System.out.println(list01);//[1, 3, 2]
    
            Collections.sort(list01, new Comparator<Integer>() {
                //重写比较的规则
                @Override
                public int compare(Integer o1, Integer o2) {
                    //return o1-o2;//升序
                    return o2-o1;//降序
                }
            });
    
            System.out.println(list01);
    
            ArrayList<Student> list02 = new ArrayList<>();
            list02.add(new Student("a迪丽热巴",18));
            list02.add(new Student("古力娜扎",20));
            list02.add(new Student("杨幂",17));
            list02.add(new Student("b杨幂",18));
            System.out.println(list02);
    
            /*Collections.sort(list02, new Comparator<Student>() {
                @Override
                public int compare(Student o1, Student o2) {
                    //按照年龄升序排序
                    return o1.getAge()-o2.getAge();
                }
            });*/
    
            //扩展:了解
            Collections.sort(list02, new Comparator<Student>() {
                @Override
                public int compare(Student o1, Student o2) {
                    //按照年龄升序排序
                    int result =  o1.getAge()-o2.getAge();
                    //如果两个人年龄相同,再使用姓名的第一个字比较
                    if(result==0){
                        result =  o1.getName().charAt(0)-o2.getName().charAt(0);
                    }
                    return  result;
                }
    
            });
    
            System.out.println(list02);
        }
    }
    
    
    
    package com.itheima.demo05.Collections;
    
    public class Student {
        private String name;
        private int age;
    
        public Student() {
        }
    
        public Student(String name, int age) {
            this.name = name;
            this.age = age;
        }
    
        @Override
        public String toString() {
            return "Student{" +
                    "name='" + name + '\'' +
                    ", age=" + age +
                    '}';
        }
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public int getAge() {
            return age;
        }
    
        public void setAge(int age) {
            this.age = age;
        }
    }
    
     
  • 相关阅读:
    ASP.NET 中Request.QueryString 中的key
    我要爱死这个markdown 了
    WindowsPhone 8 开发 之 本地数据库应用
    java对象详解
    java内存分析
    java 成长之路
    springboot hessian
    zabbix 3.0 安装 ubuntu环境
    dubbo+zookeeper简单环境搭建
    大型网站及架构演进过程
  • 原文地址:https://www.cnblogs.com/xiaobaibailongma/p/16906817.html
Copyright © 2020-2023  润新知