【发布时间】:2019-08-19 15:59:02
【问题描述】:
我有一个数字的 String 列表(可以是 int 列表,只需将其转换为数组列表即可返回),这个数字可以是一个范围,例如从 1 到 25。
我尝试使用Collections.sort(numbersList); 对它们进行排序,但它以一种奇怪的方式对它们进行排序。例如这是当前的排序:
1
10
11
..
2
20
21
..
我真正想要的是按数字顺序排序,例如:
1
2
3
..
10
11
..
尝试将它们排序为int[] 和Arrays.sort(numbers);,但结果相同。
这是我用来生成数字并将它们转换为数组列表的代码。
int[] range = IntStream.rangeClosed(1, 30).toArray();
Arrays.sort(range);
List<String> rangeList = new ArrayList<>();
for (int number : range) {
rangeList.add(String.valueOf(number));
}
【问题讨论】:
-
当你将它们作为字符串排序时,它会给你一个字母数字顺序,其中“10”在“2”之前。排序整数应该可以工作,你可能没有正确地做,但你没有显示你的代码,所以我们不能帮助你。
-
@MK。我进行了编辑以展示我第一次尝试排序的方式,并将它们作为整数。
-
写一个完整的例子 (MCVE),向我们展示你是如何创建你的初始列表或数组的。
-
你写的代码应该可以工作,我试过了,它似乎可以工作。repl.it/repls/DesertedCrazySites