ArrayList<Integer>中的Java自定义整数对象排序

我有一个包含以下数字的 ArrayList:


[6902, 6903, 6904, 790, 10902, 10903, 10904, 1190, 7901, 7902, 7903, 7904, 8904

, 990, 9901, 9902, 890, 8901, 8902, 8903, 6503, 6504, 690, 6901, 12904, 1310, 1

3101, 13102, 13103, 13104, 9903, 9904, 1090, 10901, 1290, 12901, 12902, 12903, 

11901, 11902, 11903, 11904, 5903, 5904, 590, 5901, 5902, 650, 6501, 6502]

现在自然顺序Collections.sort是 590、650、690 等等。但我需要的顺序是 590, 5901, 5902, 5903, 5904, 650, 6501, 6502, 6503 ...


有没有一种优雅的方法来做到这一点,或者我是否必须iterate通过ArrayList许多来完成我想要的排序if / elseifs?


犯罪嫌疑人X
浏览 197回答 3
3回答

偶然的你

因为我认为您希望按字典顺序对值进行排序,所以您所要做的就是使用比较器将两个项目都转换为字符串。list.sort(Comparator.comparing(Object::toString)); System.out.println(list);[1,1090,10901,10902,10903,10904,1190,11901,11902,11903,11904,1290,12901,12902,12903,12904,1310,13102,13103,13104,3101,590,5901,5902,5903 , 5904, 650, 6501, 6502, 6503, 6504, 690, 6901, 6902, 6903, 6904, 790, 7901, 7902, 7903, 7904, 8, 9 09, 9 09, 3, 8 9 09 09 , 9904]

哔哔one

使用Collections.sort(List, Comparator)并提供您自己的比较器来给出您想要的顺序。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python