我有一個像下面兩個集合:轉換收集到地圖
Set<String> attributes = Sets.newHashSet("aaa", "bbb", "ccc", "ddd");
Set<String> activeAttributes = Sets.newHashSet("eee", "lll", "ccc", "mmm");
到這些集合轉換成地圖的想法,因爲attributes
收集應作爲這個地圖的鑰匙和activeAttributes
應該計算時使用值(如果activeAttributes
包含從收集attributes
然後「真」,否則爲「假」參數應設置值):
作爲例子:
({aaa -> false, bbb -> false, ccc -> true, ddd -> false })
我試圖創建一個轉換列表中的Map.Entry的集合番石榴功能:
private static class ActiveAttributesFunction implements Function<String, Map.Entry<String, Boolean>> {
private Set<String> activeAttributes;
public ActiveAttributesFunction (Set<String> activeAttributes) {
this.activeAttributes = activeAttributes;
}
@Override
public Map.Entry<String, Boolean> apply(String input) {
return Maps.immutableEntry(input, activeAttributes.contains(input));
}
}
但是,這個功能將需要轉換的條目映射的列表中。
請建議這可以簡化爲什麼?
你不想使用標準的「for」循環? – Pras