У меня есть две коллекции, как показано ниже:Преобразование коллекции к карте
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 })
Я пытался создать функцию, которая преобразует Guava список коллекции 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));
}
}
Но эта функция требует, чтобы преобразовать этот список записей на карту.
Просьба указать, каким образом это можно упростить?
Вы не хотите использовать стандартный цикл «для»? – Pras