JAVA字符串类型数字排序

createh55个月前 (12-14)技术教程41

如果列表的字符串是数字,代码排序起来很费劲。

我们可以使用排序器自定义列表排序

例如:

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());

相关文章

JSON 字符串是如何被解析的?JsonParser了解一下

版本约定Jackson 版本:2.11.0Spring Framework 版本:5.2.6.RELEASESpring Boot 版本:2.3.0.RELEASE什么叫读 JSON?就是把一个 JS...

「java面试_01」String类为什么是final

1. 什么是不可变?String不可变很简单,如下图,给一个已有字符串"abcd"第二次赋值成"abcedl",不是在原内存地址上修改数据,而是重新指向一个新对象,新地...