在Java中排序后,数组乱序

时间:2016-01-14 23:05:50

标签: java arrays sorting

我有一个包含值1-10的Java String数组。然而,当我在它上面运行Arrays.sort()时,它变为1,10,2,3,4 ...... 9。有谁知道为什么10号出了故障?是因为它是一个字符串数组而不是一个int数组?任何帮助表示赞赏!

2 个答案:

答案 0 :(得分:4)

是的,这是因为它是字符串数组。 String类型的默认排序 - 简单的Unicode排序类似于字母排序。这就是为什么你的结果如此。

如果你将type改为int,一切都应该没问题。

答案 1 :(得分:1)

Array.sort()的排序算法由其内容natural ordering(可比较界面的内容&#39)实现设置。

你可以检查课程'通过转到Java文档并检查类'实现。例如,String的实现(在String.compareTo(String)下)指定这是由lexicographical order完成的(通常称为字母顺序)。

要解决此问题,请将前导0添加到其他号码,或使用其他内容类型(例如int)。