[英]What would be the best suited data structure to represent the following scenario
我有一个矩阵状的数据结构,我想保留其原始形式,并尽可能保留Java之类的语言。 如下:
a() b() ... n()
a() .1 .2 ... .9
b() .4 .3 ... .6
..
.
n() .1 .7 ... .4
可以想象a(),b(),... n()是对象的实例。 我在此处加上括号的唯一原因是因为我使用的是特定于领域的语言来解决问题。 但是,对于Java等主流语言,我可以很好地提出这个问题。 我将如何设计数据结构(或使用提供的类型)并随后进行简单的函数调用,在该函数中我可以传入两个对象参数(即(a,b))并获取数字值。 限制是不要诉诸于定义一个复杂的类,该类定义一系列子hashmap字段,依此类推等等,一次将数据存储一行或一列。 Java是否提供内置类型以将其作为直接解决方案?
您可以将Java中的Map
与键一起用作组合两个对象(如一对)的对象。
Java不提供元组/对的实现。 但是您可以使用Apache Commons或实现自己的。 也来看看这个问题 。
Map
只能包含一个键值对。 Google Guava的Table
可以保存行,列和值信息。
您可以这样实例化一个:
Table<Double, String, Double> table = HashBasedTable.create();
...您可以使用任何您喜欢的行,列,值三元组。 以上只是一个例子。
您可以使用邻接矩阵图,甚至可以使用二维数组,我相信两者都是解决您的问题的有效方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.