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

回到顶部