Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/373.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 返回一组地图集合中的所有关键点_Java_Collections - Fatal编程技术网

Java 返回一组地图集合中的所有关键点

Java 返回一组地图集合中的所有关键点,java,collections,Java,Collections,是否有一个内置的Java方法将多个映射作为参数并返回这些映射中的所有键集 差不多 public static Set<String> getKeys(Map<String, ?> ... arg2){ Set<String> result = new HashSet<>(); for (Map<String, ?> map : arg2) { for (Map.Entry<Stri

是否有一个内置的Java方法将多个映射作为参数并返回这些映射中的所有键集

差不多

public static Set<String> getKeys(Map<String, ?> ... arg2){

    Set<String> result = new HashSet<>();        
    for (Map<String, ?> map : arg2) {
        for (Map.Entry<String, ?> entry : map.entrySet()) {
            String key = entry.getKey();
            result.add(key);
        }            
    }
    return result;
}
公共静态设置getKeys(映射…arg2){
Set result=new HashSet();
用于(映射:arg2){
对于(Map.Entry:Map.entrySet()){
String key=entry.getKey();
结果。添加(键);
}            
}
返回结果;
}

据我所知,没有。但是让我们来享受一下Java 8流的乐趣,好吗

private Set<String> keys(Map<String, ?>... maps) {
    return Arrays.stream(maps).flatMap((map) -> map.keySet().stream()).collect(Collectors.toSet());
}
专用设置密钥(映射…映射){
返回Arrays.stream(map).flatMap((map)->map.keySet().stream()).collect(collector.toSet());
}

您可以使用Java 8和streams

public static Set<String> getKeys(Map<String, ?> ... arg2){
    return Arrays.stream(arg2)
            .map(Map::keySet)
            .flatMap(Collection::stream)
            .collect(Collectors.toSet());
}
公共静态设置getKeys(映射…arg2){
返回Arrays.stream(arg2)
.map(映射::键集)
.flatMap(集合::流)
.collect(收集器.toSet());
}

据我所知没有。如果有,它将与您的代码相同;-)不,我知道,当然不是在标准的LIB中。虽然我建议使用
keySet()
,例如
result.addAll(map.keySet())
,但您使用的方法是可行的-这样您就不需要内部循环,尽管它很可能不会对性能产生影响。