java基础—— Collections.sort的两种用法,简单明了

    xiaoxiao2021-03-25  96

    /**  * @author guwh  * @version 创建时间:2011-11-3 上午10:49:36  * 类说明  */    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;       }   }      打印的结果为:    [259]   [name is aa order is 1, name is bb order is 2]   [name is ab order is 1, name is ba order is 2]  
    转载请注明原文地址: https://ju.6miu.com/read-14310.html

    最新回复(0)