集合排序

集合排序采用的是调用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 + "]";
    }
    
}
以粮为纲全面发展
原文地址:https://www.cnblogs.com/alexliuf/p/13357599.html