如何使用Hashmaps数组中的特定键计算Hashmaps的出现次数?

时间:2015-07-30 14:24:34

标签: java android arrays hashmap

我需要知道在一个哈希映射数组中有多少个hashmaps具有特定的键。

如何在不循环遍历整个数组的情况下获取该数字?

之类的东西
int occurrences = Collections.frequency(TheHashmapArray, ["specificKey",*]);

1 个答案:

答案 0 :(得分:3)

从性能角度来看,没有经过所有映射就无法实现这一点,O(n)复杂度(注意containsKeyHashMap中具有O(1)复杂度)

如果问题只是避免编写循环的笨拙语法,那么Java 8提供了一种利用流API实现这一目标的简洁方法:

Map<String, String>[] mapsArray = // get the value
long numMaps =
    Arrays.stream(mapsArray).filter(p -> p.containsKey("some_key")).count();

编辑:
根据下面的评论,它不是数组,而是ArrayList。同样的原则仍然有效,但由于您有一个实际的Collection,您只需拨打.stream

ArrayList<HashMap<String, String>> mapsArray =  // get the value
long numMaps = mapsArray.stream().filter(p -> p.containsKey("some_key")).count();