Java Map,使用值属性过滤
我有一个
TreeMap resMap new TreeMap<String, Map<String, String>>();
我想过滤并仅保留值包含已知对的条目,比方说(’mike’=>’jordan’),并避免如下所示的循环
我所包含的库中是否有apache.commons和google.common的filter方法(也可能会执行循环,但至少不那么冗长
for (Entry<String, TreeMap<String, String>> el : resMap.entrySet()){ if (el.getValue().get("mike").equals("jordan")){
//
}
}
回答:
您可以使用来自Guava和Predicate
界面的过滤器。
Predicate<T> yourFilter = new Predicate<T>() { public boolean apply(T o) {
// your filter
}
};
因此,简单的示例将是:
Predicate<Integer> evenFilter = new Predicate<Integer>() { public boolean apply(Integer i) {
return (i % 2 == 0);
}
};
Map<Integer, Integer> map = new HashMap<Integer, Integer>();
Map<Integer, Integer> evenMap = Maps.filterValues(map, evenFilter);
以上是 Java Map,使用值属性过滤 的全部内容, 来源链接: utcz.com/qa/428454.html