【MapSheep】
[好记性不如烂笔头]

如下代码

import java.util.Collections;
import java.util.List;
import java.util.ArrayList;
import java.util.Comparator;

public class Java8Tester {
    public static void main(String args[]) {

        List<String> names1 = new ArrayList<String>();
        names1.add("Google ");
        names1.add("Runoob ");
        names1.add("Taobao ");
        names1.add("Baidu ");
        names1.add("Sina ");

        List<String> names2 = new ArrayList<String>();
        names2.add("Google ");
        names2.add("Runoob ");
        names2.add("Taobao ");
        names2.add("Baidu ");
        names2.add("Sina ");

        Java8Tester tester = new Java8Tester();
        System.out.println("使用 Java 7 语法: ");

        tester.sortUsingJava7(names1);
        System.out.println(names1);
        System.out.println("使用 Java 8 语法: ");

        tester.sortUsingJava8(names2);
        System.out.println(names2);
    }

    // 使用 java 7 排序
    private void sortUsingJava7(List<String> names) {
        Collections.sort(names, new Comparator<String>() {
            @Override
            public int compare(String s1, String s2) {
                return s1.compareTo(s2);
            }
        });
    }

    // 使用 java 8 排序
    private void sortUsingJava8(List<String> names) {
        Collections.sort(names, (s1, s2) -> s1.compareTo(s2));
    }

    /*使用 Java 7 语法:
            [Baidu , Google , Runoob , Sina , Taobao ]
    使用 Java 8 语法:
            [Baidu , Google , Runoob , Sina , Taobao ]*/
}

数字排序

public static void main(String[] args) {
  List<Integer> integers = Arrays.asList(10, 5, 3, 7, 2);
  Collections.sort(integers,(s1,s2) -> s1.compareTo(s2));
  System.out.println(integers);
}
// [2, 3, 5, 7, 10]

根据集合中某一列的Integer类型排序

  // 使用排序, 注意: 比较器只支持Integer类型
  // 输出:Student{name='小明', sex='男', clazz='1'}Student{name='小红', sex='女', clazz='1'}Student{name='小刚', sex='男', clazz='2'}Student{name='小白', sex='男', clazz='2'}Student{name='小蓝', sex='男', clazz='3'}Student{name='王老五', sex='男', clazz='10'}
  Collections.sort(list, Comparator.comparing(Student::getClazz));
  list.forEach(System.out::print);
posted on 2021-02-18 14:51  (Play)  阅读(1043)  评论(0编辑  收藏  举报