【发布时间】:2017-03-31 02:05:07
【问题描述】:
我有一个ArrayList,我使用Collections.sort 对其进行了排序。
但结果如下所示。如何让它升序排列?
[0, 1, 11, 12, 12, 13, 13, 14, 14, 16, 16, 16, 17, 17, 17, 18, 18, 19, 2, 2, 20, 20, 20, 21, 21, 22, 4, 7, 7, 7, 8, 9, 9, 9, 9, 9]
【问题讨论】:
-
添加Python、Ruby、Perl等语言标签会让你得到更好的答案。
-
输出表明您正在排序字符数据,而不是数字数据。它们的字符顺序正确。如果要将它们作为数字排序,请将它们转换为整数或添加前导(或尾随)零以使它们全部为两位数。
-
@Ken White 只是为了理解,你怎么说输出是按字符排序的,它们是按顺序排列的
-
我不懂Java,但我想应该是这样的
testList.sort((a, b) -> Double.compare(b, a)) -
按字符排序时,它们的顺序正确,正如我所说的那样。复制这些值,将它们粘贴到 Excel 中格式化为文本的列中,然后让 Excel 对它们进行排序,您将获得与显示的完全相同的顺序。将它们格式化为数字,你会得到不同的排序。数字不需要或没有(或允许)前导零。