Lambda表达式实现List集合的自定义排序

来源:互联网 发布:大数据和数据挖掘 编辑:程序博客网 时间:2024/06/07 05:41

之前写code,实现List集合的自定义排序,都是给Collections.sort()传递一个实现Comparator的类对象,相对比较麻烦,终于决定迅速学习一下java8中的Lambda表达,昨天刚刚到手的书,只有132页,决定13天内必须看完。OK,我终于写了自己的第一个Lambda表达式,开心~


1、测试code:

import java.util.ArrayList;import java.util.Collections;import java.util.Iterator;import java.util.function.BinaryOperator;public class Main {    public static void main(String[] args) {        BinaryOperator<Long> add=(x,y)->x+y;        /**注意:add的类型为BinaryOperator<Long>,它不是两个数字的和,而是将两个数字相加的那段代码~~~~切记")         *         */        System.out.println("-----我是x+y的和------");        System.out.println(add.apply(3L,4L));        ArrayList<Integer> list=new ArrayList<>();        list.add(3);list.add(1);list.add(4);list.add(-1);        //降序排列        Collections.sort(list,(x,y)->y-x);        Iterator<Integer> iterator=list.iterator();        System.out.println("-----我是降序排列写法-----");        while (iterator.hasNext())            System.out.print(iterator.next()+",");        System.out.println();        //升序排列        Collections.sort(list,(x,y)->x-y);        Iterator<Integer> iterator1=list.iterator();        System.out.println("-----我是升序排列写法-----");        while (iterator1.hasNext())            System.out.print(iterator1.next()+",");    }}


输出结果:

-----我是x+y的和------7-----我是降序排列写法-----4,3,1,-1,-----我是升序排列写法------1,1,3,4,Process finished with exit code 0