为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

犯罪嫌疑人X 2021-09-03 10:06:32
我有一个包含以下数字的 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]


查看完整回答
反对 回复 2021-09-03
?
哔哔one

TA贡献1854条经验 获得超8个赞

使用Collections.sort(List, Comparator)并提供您自己的比较器来给出您想要的顺序。


查看完整回答
反对 回复 2021-09-03
  • 3 回答
  • 0 关注
  • 196 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信