zoukankan      html  css  js  c++  java
  • 关于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;
        }
        
    }
  • 相关阅读:
    HTML5 实现Link跳线效果
    在TWaver的Tree节点上画线
    用TWaver加载大型游戏场景一例
    22万个木箱!TWaver 3D极限压榨
    如何在MONO 3D寻找最短路路径
    如何创建TWaver 3D的轮廓选中效果
    巧用TWaver 3D 矢量图形功能
    如何实现TWaver 3D颜色渐变
    HDU 1390 Binary Numbers
    HDU 1328 IBM Minus One
  • 原文地址:https://www.cnblogs.com/qinshuipo/p/6897787.html
Copyright © 2011-2022 走看看