我有一个CSV文件,其中包含一组对象之间的相关系数矩阵(在下面的示例中,它是四个对象u101,u102,u103,u104)。这些文件使用对象名称作为行名称和列名称,如下所示:
u101, u102, u103, u104
u101, 1.0, 0.2, 0.1, 0.4
u102, 0.2, 1.0, 0.5, 0.8
u103, 0.1, 0.5, 1.0, 0.9
u104, 0.4, 0.8, 0.9, 1.0
我现在需要做的是:将Java文件读取为Java中的某种矩阵格式,以便我可以按名称访问相关系数。基本上,我需要实现一个功能:
double getValue(String arg0, String arg1) {
[…]
}
使用
调用时getValue("u101", "u104")
然后该函数应返回0.4。
我该怎么做?
答案 0 :(得分:1)
你需要2个地图和2维数组(或arraylist)。
因此,当您接到对方法的调用时,您确实喜欢
return myArray[rowmap.get('rowname')][colmap.get('colname')];
答案 1 :(得分:0)
从文件中读取双打:Reading double values from a file
然后将您读取的值存储在双打的HashMap中。使用行名和列名构造hashmap键。要访问u102处的元素,请执行以下操作:
hashmap.put("u102-u103", 0.5);
x = hashmap.get("u102-u103");