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


    Collection集合工具类的方法二

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

    • 注意:
      sort(Listlist)使用前提
      被排序的集合里边存储的元素,必须实现Comparable,重写接口中的方法compareTo定义排序的规则

    • Comparable接口的排序规则:
      自己(this)-参数:升序


    public class Demo02Sort {
        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]
    
            //public static <T> void sort(List<T> list):将集合中元素按照默认规则排序。
            Collections.sort(list01);//默认是升序
    
            System.out.println(list01);//[1, 2, 3]
    
            ArrayList<String> list02 = new ArrayList<>();
            list02.add("a");
            list02.add("c");
            list02.add("b");
            System.out.println(list02);//[a, c, b]
    
            Collections.sort(list02);
            System.out.println(list02);//[a, b, c]
    
            ArrayList<Person> list03 = new ArrayList<>();
            list03.add(new Person("张三",18));
            list03.add(new Person("李四",20));
            list03.add(new Person("王五",15));
            System.out.println(list03);//[Person{name='张三', age=18}, Person{name='李四', age=20}, Person{name='王五', age=15}]
    
            Collections.sort(list03);
            System.out.println(list03);
        }
    }
    
    
    

    排序自定义的泛型

    package com.itheima.demo05.Collections;
    
    public class Person implements Comparable<Person>{
        private String name;
        private int age;
    
        public Person() {
        }
    
        public Person(String name, int age) {
            this.name = name;
            this.age = age;
        }
    
        @Override
        public String toString() {
            return "Person{" +
                    "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;
        }
    
        //重写排序的规则
        @Override
        public int compareTo(Person o) {
            //return 0;//认为元素都是相同的
            //自定义比较的规则,比较两个人的年龄(this,参数Person)
            //return this.getAge() - o.getAge();//年龄升序排序
            return o.getAge() - this.getAge();//年龄升序排序
        }
    }
    
     
  • 相关阅读:
    poj 1201 Intervals 差分约束系统
    poj 3237 Tree 树链剖分+线段树
    hdu 2256 Problem of Precision 构造整数 + 矩阵快速幂
    hdu 5451 Best Solver 矩阵循环群+矩阵快速幂
    hdu 5769 Substring 后缀数组 + KMP
    hdu 5755 2016 Multi-University Training Contest 3 Gambler Bo 高斯消元模3同余方程
    hdu 5690 2016"百度之星"
    hdu 5738 2016 Multi-University Training Contest 2 Eureka 计数问题(组合数学+STL)
    hdu 5719 BestCoder 2nd Anniversary B Arrange 简单计数问题
    hdu 5720 BestCoder 2nd Anniversary Wool 推理+一维区间的并
  • 原文地址:https://www.cnblogs.com/xiaobaibailongma/p/16906798.html
Copyright © 2020-2023  润新知