Java 返回一组地图集合中的所有关键点
是否有一个内置的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
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())
,但您使用的方法是可行的-这样您就不需要内部循环,尽管它很可能不会对性能产生影响。