集合排序
阿新 • • 發佈:2020-07-21
集合排序採用的是呼叫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 + "]"; } }