Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将数组作为其值存储在HashMap中_Java_Arrays_Arraylist_Hashmap - Fatal编程技术网

Java 将数组作为其值存储在HashMap中

Java 将数组作为其值存储在HashMap中,java,arrays,arraylist,hashmap,Java,Arrays,Arraylist,Hashmap,我想将浮点数组存储为HashMap的值 HashMap<Integer, Float[]> vFeatureHm = new HashMap<Integer, Float[]>(); HashMap vFeatureHm=newhashmap(); 这里的浮点数组包含指定数量的值,例如10。我该如何以及在哪里提到这一点?我将动态地将值添加到该数组中。我可以使用ArrayList,但我将其用于矩阵类型的结构,并且很容易从索引中获取值,因为值是按该顺序存储的。在这种情况下

我想将浮点数组存储为HashMap的值

HashMap<Integer, Float[]> vFeatureHm = new HashMap<Integer, Float[]>();
HashMap vFeatureHm=newhashmap();
这里的浮点数组包含指定数量的值,例如10。我该如何以及在哪里提到这一点?我将动态地将值添加到该数组中。我可以使用ArrayList,但我将其用于矩阵类型的结构,并且很容易从索引中获取值,因为值是按该顺序存储的。在这种情况下,ArrayList对我来说似乎有点过头了。你能建议如何解决这个问题吗。现在,我开始使用ArrayList,但我想知道是否有一种方法可以像上面提到的那样使用它


更新:我意识到ArrayList在我的情况下不适合我,因为我需要将它放在一个特定的索引中。所以我必须使用上面提到的格式,或者使用HashMap,这也是一种过度杀戮。关于使用上面提到的Float有什么建议吗?

您不需要指定
Float[]
数组的维度


该数组是一个
对象
,就像
vFeatureHm
映射的任何其他值一样,因此任何边界检查都与
HashMap
无关(当然,它可以在代码的另一部分执行)。

因为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]

您是只有一个10个值的浮点数组,还是有多个这样的数组?什么是整数的作用,你作为一个关键的哈希地图?你应该考虑使用番石榴石表:@ PNS我有一个列表的电影和有10个特点,每一个电影。电影ID不是按顺序排列的(假设有1000部电影,最高的电影ID可以是9338)。但是所有的电影都会而且必须有相同的10个特征。所以地图的关键是一个电影ID,值是10个值的浮点数组。我不能将其保留为数组列表,因为索引很重要。@OmarHrynkiewicz,谢谢您的输入。看起来我想怎么做就怎么做,但正如我提到的,我不想使用地图,因为它们对我来说似乎太致命了。我想知道我们是否可以用数组来实现这一点。谢谢。这很有帮助。我错过了浮动[]只是另一个对象。我初始化它如下
Float[]featureValues=uFeatureHm.get(userid);如果(featureValues==null){featureValues=new Float[Settings.noOfCommonFeatures];featureValues[fi-1]=fv;uFeatureHm.put(userid,featureValues);}或者{featureValues[fi-1]=fv;}
假设您在上述代码中使用的变量已定义且一致,您就可以了。