集合排序采用的是调用List的sort方法传入参数(比较器)实现Comparator接口,
package list; import java.util.ArrayList; import java.util.Comparator; import java.util.List; public class TestSort { public static void main(String[] args) { List<Integer> list = new ArrayList<Integer>(); list.add(111); list.add(222); list.add(333); list.add(555); list.add(444); list.forEach(o->System.out.println(o)); System.out.println("-------------------"); // list.sort(new ClassB()); list.sort((i1,i2)->{ if(i1<i2)return -1; return 1; }); System.out.println("---------------------"); list.forEach(o->System.out.println(o)); 11 } } //class ClassB implements Comparator<Integer>{ // public int compare(Integer i1,Integer i2) { // //负换正不换 参数1表示集合要添加的值,参数2表示集合中原有的值 //// System.out.println(i1); //// System.out.println(i2); //// return -10; // //升序排列 //// if(i1<i2) return -1; //// return 1; // //降序排列 // if(i1>i2)return -1; // return 1; // } // //}
package list; import java.util.ArrayList; import java.util.List; public class TestSort1 { public static void main(String[] args) { // 创建集合 List<Worker> list = new ArrayList<Worker>(); list.add(new Worker("哈哈",38,'男',3800D)); list.add(new Worker("嘻嘻",19,'男',3900D)); list.add(new Worker("啧啧",25,'男',3900D)); list.add(new Worker("卧槽",41,'男',3600D)); list.add(new Worker("无情",47,'男',4000D)); list.add(new Worker("略略",16,'男',4200D)); list.sort((w1,w2)->{ //负换正不换,w1后w2前 //工资降序 if(w1.salary>w2.salary) { return -1; }else if(w1.salary<w2.salary){ return 1; }else { //按照年龄降序排 if(w1.age<w2.age)return 1; return -1; } }); list.forEach(w->System.out.println(w)); } } class Worker{ String name; Integer age; Character sex; Double salary; public Worker() { super(); // TODO Auto-generated constructor stub } public Worker(String name, Integer age, Character sex, Double salary) { super(); this.name = name; this.age = age; this.sex = sex; this.salary = salary; } @Override public String toString() { return "Worker [name=" + name + ", age=" + age + ", sex=" + sex + ", salary=" + salary + "]"; } }