JAVA字符串类型数字排序
如果列表的字符串是数字,代码排序起来很费劲。
我们可以使用排序器自定义列表排序
例如:
List<String> list = Arrays.asList("1", "2", "3", "4","5","6","7","8","9","10");
如果这样排序:
List<String> sortListA = list.stream().sorted().collect(Collectors.toList());
那么排序结果是这样: sortListA排序[1, 10, 2, 3, 4, 5, 6, 7, 8, 9] 这个结果不是按照数字从小到大的顺序排序的
所以,需要排序器
我们可以这样:
List<String> sortListB = list.stream().sorted(Comparator.comparing(list::indexOf)).collect(Collectors.toList());
我们把list根据list的指定列表排序
举一反三:
List<String> seasons = Arrays.asList("春", "夏", "秋", "冬");
我们有个这样的数据:
List<SeasonVO> seasonList = new ArrayList<>();// 省略
那么我们就可以按照季节排序了
List<SeasonVO> sortSeasonList = seasonList.stream().sorted(Comparator.comparing(SeasonVO::getSeason,Comparator.comparing(seasons::indexOf))).collect(Collectors.toList());