我需要以格式存储以下数据,以便可以按从最低值到最高值的Double值进行排序。我根本不懂java。
Index, Value
"string1", 1.1134
"string2", 2.3469
"string4", 5.2365
"string3", 2.5597
...
我知道我不能使用数组。所以有像ArrayLists,Comparators,Maps,HashMaps这样的东西,我找不到任何类似的例子。
这篇文章(Sort a two dimensional array based on one column)似乎很接近,但我不明白它是如何运作的。
备注:
子的问题:
TIA!
答案 0 :(得分:1)
您可以将它们存储在TreeMap
中,该final Map<Double,String> map = new TreeMap<>();
map.put(1.2, "String2");
map.put(1.0, "String1");
map.put(-1.0, "String0");
for(Double d : map.keySet()) {
System.out.println(d + " = " + map.get(d));
}
将根据其自然顺序返回键。在这种情况下,您将使用Double作为键,将String作为值。
{{1}}
哪个输出:
-1.0 = String0
1.0 = String1
1.2 = String2
答案 1 :(得分:0)
您可以将它们放在TreeMap
中,如下所示:
Map<Double, String> map = new TreeMap<Double, String>();
然后,您可以通过Map.put()
方法放置对象。地图的大小没有固定,因此您可以随时编辑它。假设您有两个数组,一个是双打和一个字符串,可以配对,你可以:
for (int i = 0; i < doubles.length; ++i)
{
map.put(doubles[i], string[i]);
}
然后,要按顺序打印,您所要做的就是:
System.out.println(map);
快乐的编码!