Guava中Maps.filterKeys和Maps.filterValues之间的区别

时间:2012-09-14 13:34:45

标签: java maps guava

试图理解为什么我们有单独的方法Maps.filterKeys和Maps.filterValues。

如果将相同的谓词传递给任一方法,结果将不相同 - 因为谓词决定了什么是过滤的。

1 个答案:

答案 0 :(得分:4)

除非你有一个Map<K, V>,其中K和V是相同的类,否则你不能传递相同的谓词:

Maps.filterKeys(Map<K, V> unfiltered, Predicate<? super K> keyPredicate);
Maps.filterValues(Map<K, V> unfiltered, Predicate<? super V> valuePredicate);

顾名思义,filterKeys过滤了密钥,filterValues过滤了这些值。