我有一个包含以下数字的 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, 13101, 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?
3 回答
偶然的你
TA贡献1841条经验 获得超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]
添加回答
举报
0/150
提交
取消