zoukankan      html  css  js  c++  java
  • java基础—— Collections.sort的两种用法

    package com.jabberchina.test;  
      
    import java.util.ArrayList;  
    import java.util.Collections;  
    import java.util.Comparator;  
    import java.util.List;  
      
    public class SortTest {  
          
          
          
        public static void main(String[] args) {  
            List<String> lists = new ArrayList<String>();  
            List<A> list = new ArrayList<A>();  
            List<B> listB = new ArrayList<B>();  
            lists.add("5");  
            lists.add("2");  
            lists.add("9");  
            //lists中的对象String 本身含有compareTo方法,所以可以直接调用sort方法,按自然顺序排序,即升序排序  
            Collections.sort(lists);  
              
            A aa = new A();  
            aa.setName("aa");  
            aa.setOrder(1);  
            A bb = new A();  
            bb.setName("bb");  
            bb.setOrder(2);  
            list.add(bb);  
            list.add(aa);  
            //list中的对象A实现Comparable接口  
            Collections.sort(list);  
              
            B ab = new B();  
            ab.setName("ab");  
            ab.setOrder("1");  
            B ba = new B();  
            ba.setName("ba");  
            ba.setOrder("2");  
            listB.add(ba);  
            listB.add(ab);  
            //根据Collections.sort重载方法来实现  
            Collections.sort(listB,new Comparator<B>(){  
                @Override  
                public int compare(B b1, B b2) {  
                    return b1.getOrder().compareTo(b2.getOrder());  
                }  
                  
            });  
              
            System.out.println(lists);  
            System.out.println(list);  
            System.out.println(listB);  
              
        }  
      
    }  
      
    class A implements Comparable<A>{  
        private String name;  
        private Integer order;  
        public String getName() {  
            return name;  
        }  
        public void setName(String name) {  
            this.name = name;  
        }  
          
        public Integer getOrder() {  
            return order;  
        }  
        public void setOrder(Integer order) {  
            this.order = order;  
        }  
        @Override  
        public String toString() {  
            return "name is "+name+" order is "+order;  
        }  
        @Override  
        public int compareTo(A a) {  
            return this.order.compareTo(a.getOrder());  
        }  
          
    }  
      
    class B{  
        private String name;  
        private String order;  
        public String getName() {  
            return name;  
        }  
        public void setName(String name) {  
            this.name = name;  
        }  
        public String getOrder() {  
            return order;  
        }  
        public void setOrder(String order) {  
            this.order = order;  
        }  
        @Override  
        public String toString() {  
            return "name is "+name+" order is "+order;  
        }  
    }  
      
    打印的结果为:  
     [2, 5, 9]  
    [name is aa order is 1, name is bb order is 2]  
    [name is ab order is 1, name is ba order is 2]  
  • 相关阅读:
    GridView小知识1
    ASP 中 GridView 的粗浅入门
    SQL连接
    Microsoft Visual Studio 2010 Express for Windows Phone 新建文件 设置启动
    转载一个应届计算机毕业生2012求职之路
    百度之星平衡负载(3.23)
    查找字符串中首个非重复字符
    CreateMutex函数
    关于“Visual Studio 遇到了异常,可能是由于某个扩展导致的”的解决
    无法打开预编译头文件:“Debug\****.pch”: No such file or directory 的解决办法
  • 原文地址:https://www.cnblogs.com/xiangkejin/p/6749186.html
Copyright © 2011-2022 走看看