Java8 Stream Sort

版权归原作者所有。 本文最后更新于:2023年9月27日 晚上

按照姓名首字母排序

public class SortDemo{
    public void test(List<TableBodyRow> sourceList) {
        Collator collator = Collator.getInstance(Locale.CHINA);
        List<TableBodyRow> targetList = sourceList.parallelStream()
                .sorted(Comparator.comparing((o1, o2) -> collator.compare(o1.getName() == null ? "" : o1.getName(), o2.getName() == null ? "" : o2.getName())))
                .collect(Collectors.toList());
    }
}

多条件排序

public class SortDemo{
    public void test(List<TableBodyRow> sourceList) {
        Collator collator = Collator.getInstance(Locale.CHINA);
        List<TableBodyRow> targetList = sourceList.parallelStream()
                .sorted(Comparator.comparing(TableBodyRow::getSex)
                        .thenComparing(TableBodyRow::getAge)
                        .thenComparing((o1, o2) -> collator.compare(o1.getName() == null ? "" : o1.getName(), o2.getName() == null ? "" : o2.getName())))
                .collect(Collectors.toList());
    }
}