我有一个类似矩阵的数据结构,我希望以原始形式保存,就像Java这样的语言允许的那样。它如下:
a() b() ... n()
a() .1 .2 ... .9
b() .4 .3 ... .6
..
.
n() .1 .7 ... .4
可以想象一个(),b(),... n()作为对象的实例。我在这里使用括号的唯一原因是因为我使用特定于域的语言来解决问题。但是,我可以很好地为Java等主流语言提出这个问题。我将如何设计数据结构(或使用提供的类型)以及随后的简单函数调用,其中我可以传入两个对象参数(即(a,b))并获取数值。约束是不要求助于定义定义一系列子散列映射字段的复杂类,依此类推,以便一次存储一行或一列数据。 Java是否提供内置类型作为直接解决方案?
答案 0 :(得分:2)
您可以使用Java中的Map
将密钥作为组合两个对象(如一对)的对象。
Java没有提供元组/对的实现。但您可以使用Apache Commons或实施自己的this question。另请查看{{3}}。
答案 1 :(得分:2)
Map
只能保存一个键值对。来自Google Guava的Table
可以保存行,列和值信息。
你会像这样实例化:
Table<Double, String, Double> table = HashBasedTable.create();
...你可以使用你喜欢的任何行,列,值三元组。以上只是一个例子。
答案 2 :(得分:0)
您可以使用邻接矩阵图甚至是二维数组,我相信这两种方法都是您问题的有效解决方案。