1、需求一个级别可以有多个档级,级别和档位可能会变动
2、数据库存储的元数据是级别+档次+薪资
代码实现:
public class Test {
public static void main(String[] args) {
Listlist = initDemoList();
// 级别分组
List responseList = list.stream().collect(Collectors.groupingBy(Demo::getLevel)).entrySet().stream()
// 级别排序
.sorted(Map.Entry.comparingByKey()).map(integerListEntry -> {
// 新数组接收
List newList = new ArrayList();
newList.add(integerListEntry.getKey());
// 档位排序
newList.addAll(integerListEntry.getValue().stream().sorted((o1, o2) -> o1.getGrade() - o2.getGrade())
// 收集薪资
.map(Demo::getSalary).collect(Collectors.toList()));
return newList;</