【发布时间】:2013-12-04 12:13:00
【问题描述】:
String[] k1 = {"0.10", "0.2", "0.1", "0", "1.10", "1.2", "1.1", "1", "2.10", "2", "2.2", "2.1"};
double[] k2 = {0.10, 0.2, 0.1, 0, 1.10, 1.2, 1.1, 1, 2.10, 2, 2.2, 2.1};
Arrays.sort(k1);
Arrays.sort(k2);
System.out.println(Arrays.toString(k1));
System.out.println(Arrays.toString(k2));
输出:
[0, 0.1, 0.10, 0.2, 1, 1.1, 1.10, 1.2, 2, 2.1, 2.10, 2.2]
[0.0, 0.1, 0.1, 0.2, 1.0, 1.1, 1.1, 1.2, 2.0, 2.1, 2.1, 2.2]
我想要什么,
[0, 0.1, 0.2, 0.10, 1, 1.1, 1.2, 1.10, 2, 2.1, 2.2, 2.10]
小数之前和之后的第一个排序。如 1、1.1、1.2、1.10、2、2.1 等。
如何为此编写比较器?
【问题讨论】:
-
不是很清楚:你的双数组似乎可以解决问题。是否要删除重复值?
-
先向我们展示您尝试过的内容。为什么不使用 TreeSet?
-
@user2378231 在双 1.1 和 1.10 中将被视为 1.1,但我想要 1.1、1.10
-
但是为什么要 1.10 大于 1.2??
-
基本上这些是地图的关键。我检索密钥集并希望它对其进行排序,因为我的操作取决于顺序。我无法控制地图。
标签: java sorting comparator