• 关于java Collections.sort 排序


    public static void main(String[] args) {
            
            int[] dd = {12,34,46,123,23,2,35,13,543231,65,5645,57};
            Arrays.sort(dd);
            System.out.println(Arrays.toString(dd));  // 常用数组排序,算法是快速排序算法
            
            List<Student> ls = new ArrayList<Student>(); 
            ls.add(new Student(2, "12123"));
            ls.add(new Student(54, "12334"));
            ls.add(new Student(32, "354123"));
            ls.add(new Student(6, "12654623"));
            ls.add(new Student(7, "456423"));
        
            
            Collections.sort(ls);  // 对象集合排序,依赖对象的compare方法 优点排序方式可以复用,但是不够灵活
            for(Student st : ls){
                System.out.println(st.toString());
            }
            Collections.sort(ls ,new Comparator<Student>(){  // 对象集合排序,需要每次写比较方法
    
                @Override
                public int compare(Student o1, Student o2) {
                    // TODO Auto-generated method stub
                    if(o1.getName().compareTo(o2.getName()) == 0){
                        return o1.getName().compareTo(o2.getName());
                    }else{
                        return o1.getId() - o2.getId();
                    }
                }
                
            });
            System.out.println("------------------------------");
            for(Student st : ls){
                System.out.println(st.toString());
            }
        }
    }
    
    
    class Student implements Comparable{
        int id;
        String name ;
        
        public Student(int id, String name) {
            super();
            this.id = id;
            this.name = name;
        }
    
        public int getId() {
            return id;
        }
    
        public void setId(int id) {
            this.id = id;
        }
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        @Override
        public int compareTo(Object o) {
            // TODO Auto-generated method stub
            if(this.id != ((Student)o).getId()){
                return this.id - ((Student)o).getId();
            }else{
                return this.name.compareTo(((Student)o).getName());
            }
        }
    
        @Override
        public String toString() {
            return "id=" + id + ", name=" + name;
        }
        
    }
  • 相关阅读:
    php 三元运算符简洁用法
    Linux 获取网卡信息
    《构建之法》读后感
    毫秒数据字符串转换为DateTime
    POST请求——HttpWebRequest
    多个不同类对象传输思路
    WCF 大文件传输配置
    WCF配置文件详解
    C# 元组、匿名对象、ref&out
    C#控制台关闭之前做一些操作
  • 原文地址:https://www.cnblogs.com/qinshuipo/p/6897787.html
Copyright © 2020-2023  润新知