【发布时间】:2011-11-24 20:46:12
【问题描述】:
是否有更优雅/内置的方式来反转 Hashmap 的键和值?
我目前有以下。
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;
}
【问题讨论】:
-
您真的需要来自布尔的地图吗?只有两个可能的键(真和假)。两个 Collection
、一个拒绝列表和一个允许列表怎么样? -
@Thilo - 不要忘记
null:) 但是,是的,我同意。
标签: java list dictionary arraylist hashmap