我需要以某种格式存储以下数据,以便可以按 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 ) 看起来很接近,但我不明白它是如何工作的。
注释:
- 我不会提前知道这些元素,所以我想确定尺寸 运行时的数组。我希望设计能够实现一些东西 就像“新的 2D-ArrayThingy[ExternalArray.size]”
- 我将在基于对象的循环中逐行获取所有元素。 它们始终是字符串,后跟 double 。所以了解如何 一次填充一行很有用。我不在乎 顺序是否是字符串在前。
子问题:
- 如何根据我的需要存储这些数据?
- 如何按 double 值对数据进行排序?
- 如何输出数据(例如输出到屏幕)?
TIA!
最佳答案
您可以将它们存储在 TreeMap
中,它将根据其自然顺序返回键。在本例中,您将使用 Double 作为键,将 String 作为值。
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));
}
哪些输出:
-1.0 = String0
1.0 = String1
1.2 = String2
关于java - 如何在 Java 中存储、排序和打印字符串和 double 的 2D "array"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27882202/