试图理解为什么我们有单独的方法Maps.filterKeys和Maps.filterValues。
如果将相同的谓词传递给任一方法,结果将不相同 - 因为谓词决定了什么是过滤的。
答案 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
过滤了这些值。