我是 Java 的新手,非常困惑。
我有一个长度为 4 int[]
的大数据集,我想计算 4 个整数的每个特定组合出现的次数。这与计算文档中的词频非常相似。
我想创建一个 Map<int[], double>
在迭代列表时将每个 int[] 映射到一个运行计数,但 Map 不采用原始类型。
所以我做了 Map<Integer[], Double>
。
我的数据存储为 ArrayList<int[]>
,所以我的循环应该是这样的:
ArrayList<int[]> data = ... // load a dataset`
Map<Integer[], Double> frequencies = new HashMap<Integer[], Double>();
for(int[] q : data) {
// **DO SOMETHING TO convert q from int[] to Integer[] so I can put it in the map
if(frequencies.containsKey(q)) {
frequencies.put(q, tfs.get(q) + p);
} else {
frequencies.put(q, p);
}
}
我不确定在评论中我需要什么代码才能使这项工作将 int[]
转换为 Integer[]
。或者,也许我从根本上对执行此操作的正确方法感到困惑。
原文由 John 发布,翻译遵循 CC BY-SA 4.0 许可协议
Native Java 8(一行)
使用 Java 8,
int[]
可以轻松转换为Integer[]
:正如其他人所说,
Integer[]
通常不是一个好的地图键。但就转换而言,我们现在拥有相对干净的本地代码。