是否有更優雅/內置的方式來反轉Hashmap的鍵和值?從地圖<String,布爾>逆轉HashMap到地圖<布爾,列表<String>>
我目前有以下幾種。
private Map<Boolean, List<String>> reverseMap(Map<String, Boolean> permissions) {
List<String> allow = new ArrayList<String>();
List<String> deny = new ArrayList<String>();
Map<Boolean, List<String>> returnvalue = new HashMap<Boolean, List<String>>();
for (Entry<String, Boolean> entry : permissions.entrySet()) {
if(entry.getValue()) {
allow.add(entry.getKey());
} else {
deny.add(entry.getKey());
}
}
returnvalue.put(true, allow);
returnvalue.put(false, deny);
return returnvalue;
}
你真的需要從布爾地圖嗎?只有兩個可能的鍵(true和false)。怎麼樣兩個集合,一個denyList和一個allowList? –
Thilo
@Thilo - 別忘了'null' :)但是,是的,我同意。 –