我有一个带有一些数字的嵌套ArrayList。
ArrayList<Integer[]> list = new ArrayList<Integer[]>();
list.add(new Integer[] { 1, 2, 3, 4 });
list.add(new Integer[] { 1, 2, 4 });
list.add(new Integer[] { 1, 2 });
我如何获得它们的频率?
使用:
System.out.println(Collections.frequency(list , 1));
我只获得0
而不是3
(在我的情况下)。
答案 0 :(得分:1)
试试这个:
int count = 0;
for (Integer[] i: list) {
count += Collections.frequency(Arrays.asList(i), 1);
}
System.out.println(count); //3
答案 1 :(得分:1)
正确的java 8解决方案将如下所示:
System.out.println(list.stream().mapToInt(arr -> Collections.frequency(Arrays.asList(arr), 1)).sum());
如果您仍然使用java 6/7,则需要执行以下操作:
int sum= 0;
for (Integer[] arr: list) {
sum+=Collections.frequency(Arrays.asList(arr), 1);
}
System.out.println(sum);