我是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);
}
}
Run Code Online (Sandbox Code Playgroud)
我不确定在评论中需要哪些代码才能使这项工作转换int[]为Integer[].或者我可能从根本上对正确的方法感到困惑.
所以我有:
ArrayList<ArrayList<String>>
Run Code Online (Sandbox Code Playgroud)
其中包含x个包含另外y个字符串的ArrayLists.演示:
Index 0:
String 1
String 2
String 3
Index 1:
String 4
Index 2:
Index 3:
String 5
String 6
Run Code Online (Sandbox Code Playgroud)
其中index是指包含字符串的数组索引.
如何将其转换为2D数组,如下所示:
{{String1, String2, String3},{String4}, {}, {String5, String6}}
Run Code Online (Sandbox Code Playgroud)
非常感谢.