集合排序Lambda实现(Java)

摘要:

正序:一般不需要额外操作,如果需要的话,就在lambda位置加 Comparator.comparingInt(a -> a.)

倒序:除了一维数组的倒序需要stream+boxed操作,其余都使用lambda:(a,b)->Integer.compare(b.id,a.id)

一维数组int num[ ]

正序:

Arrays.sort(num);

倒序:

num = Arrays.stream(num)
                .boxed()
                .sorted(Collections.reverseOrder())
                .mapToInt(Integer::intValue)
                .toArray();

二维数组 int num[][]

正序:

Arrays.sort(points, Comparator.comparingInt(a -> a[1]));

倒序:

Arrays.sort(points, (a, b) -> Integer.compare(b[0], a[0]));

对象数组Object[]

class student{
        int id;
        int age;
        String name;
    }

student list[] = new student[10];

按某个属性正序:

Arrays.sort(list,Comparator.comparingInt(a->a.id));

按某个属性倒序:

Arrays.sort(list,(a,b)->Integer.compare(b.id,a.id));

优先队列PriorityQueue

正序:

你可能感兴趣的:(LeetCode,java,开发语言)