我正在使用 guava 库并注意到一个非常有用的 Predicate未定义 - “大于”。有没有其他地方我应该寻找这样的基本谓词,或者我注定要创建我自己的功能支持 jar,其中包括这样的东西,并将其导入我的所有项目?有没有理由他们不包括这个,但会花时间做一堆其他谓词(在 Predicates 类中)?
最佳答案
Range和 Ranges (更新:从 Guava 14.0 开始,Ranges
上的静态方法已被折叠到 Range
中)现在已为 r10 添加。你将能够做到:
Iterable<Integer> positive = Iterables.filter(numbers, Range.greaterThan(0));
Range
具有许多其他强大的功能,包括将 Range
视为离散域上的连续 ImmutableSortedSet
的能力:
ContiguousSet<Integer> oneToOneHundred = ContiguousSet.create(
Range.closed(1, 100), DiscreteDomains.integers());
我只是在这里展示了 Integer
,但是 Range
东西适用于任何 Comparable
。 ContiguousSet
需要 DiscreteDomain对于类型...Guava 目前提供 DiscreteDomain.integers()
、.longs()
和 .bigIntegers()
。
关于java - 在哪里可以找到像 Guava 的 greaterThan 这样的基本谓词?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5524642/