java - 如何在 Java 中存储、排序和打印字符串和 double 的 2D "array"?

标签 java arrays sorting arraylist multidimensional-array

我需要以某种格式存储以下数据,以便可以按 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 ) 看起来很接近,但我不明白它是如何工作的。

注释:

  1. 我不会提前知道这些元素,所以我想确定尺寸 运行时的数组。我希望设计能够实现一些东西 就像“新的 2D-ArrayThingy[ExternalArray.size]”
  2. 我将在基于对象的循环中逐行获取所有元素。 它们始终是字符串,后跟 double 。所以了解如何 一次填充一行很有用。我不在乎 顺序是否是字符串在前。

子问题:

  1. 如何根据我的需要存储这些数据?
  2. 如何按 double 值对数据进行排序?
  3. 如何输出数据(例如输出到屏幕)?

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/

相关文章:

java - Selenium 编程: what is the short cut that allow you to see the element names for your browser

java - 从 Java 正确调用 ffmpeg

java - 需要删除csv中的空列

具有特定要求的 C++ 数组排序/改组

java - 迭代列表 (ConcurrentModificationException)

C 数组大小声明毫无意义?

c++ - 静态数组的动态数组的问题

javascript - sort(), sort(function(a,b){return a-b;}); 之间的区别和排序(函数(a,b){...})

Java:Arrays.sort 快速排序和归并排序

java - RESTful Web 服务中的 URL 是否可以为具有不同授权级别的用户执行不同的操作?