我想将Float数组存储为HashMap的值。
HashMap<Integer, Float[]> vFeatureHm = new HashMap<Integer, Float[]>();
这里的浮点数组包含指定数量的值,例如10。我怎么以及在哪里提到它?我将动态地将值添加到该数组中。我可以使用ArrayList,但我将它用于矩阵类型结构,我很容易从索引中获取值,因为值按此顺序存储。在这种情况下,ArrayList似乎对我来说太过分了。你能建议如何解决这个问题。现在,我开始使用ArrayList,但我想知道是否有一种方法可以使用,如上所述。
更新:我意识到在我的情况下,ArrayList对我来说不起作用,因为我需要放在特定的索引中。所以我必须使用上面提到的格式或使用HashMap,这也是一个过度杀戮。关于如上所述使用Float的任何建议?
答案 0 :(得分:1)
您无需指定Float[]
数组的维度。
该数组与Object
映射的任何其他值一样是vFeatureHm
,因此任何边界检查都与HashMap
无关(尽管当然它可以在另一部分执行)你的代码)。
答案 1 :(得分:1)
由于float是一个对象,我将其初始化为如下所示。
Float[] featureValues = uFeatureHm.get(userid);
if(featureValues == null){
featureValues = new Float[Settings.noOfCommonFeatures];
featureValues[fi-1] = fv;
uFeatureHm.put(userid, featureValues);
}else{
featureValues[fi-1] = fv;
}
稍后,我只需访问特定用户的功能uFeatureHm.get(userid)[featureIndex]