Java Map,具有值属性的过滤器 [英] Java Map, filter with values properties
本文介绍了Java Map,具有值属性的过滤器的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个
TreeMap resMap new TreeMap<String, Map<String, String>>();
我想过滤并保留值包含已知对的条目,让我们说('mike '=>'jordan'),并避免像下面这样的循环
I would like to filter and keep only entries that values contains a known pair, let's say ('mike' => 'jordan'), and avoid a loop like below
我的包含的库中是否有apache.commons和google.common过滤方法(可能会这样做)一个循环,但至少它不太详细
Is there in my included libraries apache.commons and google.common a filter method (that probably would do a loop too, but at least it's less verbose
for (Entry<String, TreeMap<String, String>> el : resMap.entrySet()){
if (el.getValue().get("mike").equals("jordan")){
//
}
}
推荐答案
您可以使用Guava和谓词
界面
You can use filters from Guava and the Predicate
interface.
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,具有值属性的过滤器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文