我需要实现某种类似于表的数据结构,该结构在Java中存储如下信息:

+--------+-------+-----+
|  sij   |   i   |  j  |
+--------+-------+-----+
|   45   |   5   |  7  |
+--------+-------+-----+
|   33   |   1   |  6  |
+--------+-------+-----+
|   31   |   0   |  9  |
+--------+-------+-----+
|   12   |   8   |  2  |
+--------+-------+-----+

而且我必须能够通过sij参数对表格进行排序。我已经使用ArrayListHashMap进行了一些测试,但无法使其正常运行。

最佳答案

Google TreeBasedTable 库中有一个通用的guava类,它可以完全满足您的要求。它还提供了许多其他有用的实用程序方法,其用法如user guide所示。

TreeBasedTable文档:



用法示例:

RowSortedTable<Vertex, Vertex, Double> weightedGraph = TreeBasedTable.create();
weightedGraph.put(v2, v3, 4.0);
weightedGraph.put(v1, v2, 20.0);

System.out.println( weightedGraph.rowKeySet() ); // prints [v1, v2]

09-25 20:39