Java使用集合中的键初始化映射
在 java 中,您可以根据现有集合的值初始化新地图的键集吗?
就像是:
Set<String> setOfStrings = getSetFromSomeOtherFuntion();
Map<String, Boolean> map = new Hashmap<>(setOfStrings);
如果这是可能的,那么我会假设地图中每个条目的值都是 null,这是可以的,但如果可以设置默认值(例如,如果它是布尔值,则为 false)更好。
回答
Map<K, V> map = new HashMap<>();
setOfStrings.forEach(e -> map.put(e, false));
回答
您可以Collectors.toMap像这样使用流:
Map<String, Boolean> map = setOfStrings.stream()
.collect(Collectors.toMap(Function.identity(), v -> false));