list排序,并重新设置序号

/**
     * 排序,避免空指针,有空值可能的放最后,并重新排序,设置序号
     *
     * @param list
     */
    private List<实体类> sortList(List<实体类> list) {
        LongAdder longAdder = new LongAdder();
        Comparator<实体类> comparator = Comparator.comparing(实体类::getProcessingMonthAudit)
                .thenComparing(实体类::get需要排序字段1, Comparator.nullsLast(Comparator.naturalOrder()))
                .thenComparing(实体类::get需要排序字段2, Comparator.nullsLast(Comparator.naturalOrder()))
                .thenComparing(实体类::get需要排序字段3, Comparator.nullsLast(Comparator.naturalOrder()))
                .thenComparing(实体类::get需要排序字段n, Comparator.nullsLast(Comparator.naturalOrder()));
        return list.stream().sorted(comparator).peek(vo -> {
            longAdder.increment();
            vo.setSort(longAdder.intValue());
        }).collect(Collectors.toList());
    }

你可能感兴趣的:(java,算法,数据结构)