我需要知道在哈希表数组中有多少特定的键。

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

int occurrences = Collections.frequency(TheHashmapArray, ["specificKey",*]);

最佳答案

从性能的角度来看,如果不遍历所有映射,就无法实现这一点,并且复杂度为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();

07-27 20:59