我需要实现某种类似于表的数据结构,该结构在Java中存储如下信息:
+--------+-------+-----+
| sij | i | j |
+--------+-------+-----+
| 45 | 5 | 7 |
+--------+-------+-----+
| 33 | 1 | 6 |
+--------+-------+-----+
| 31 | 0 | 9 |
+--------+-------+-----+
| 12 | 8 | 2 |
+--------+-------+-----+
而且我必须能够通过
sij
参数对表格进行排序。我已经使用ArrayList
和HashMap
进行了一些测试,但无法使其正常运行。 最佳答案
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]