例如,是否可以在番石榴中创建一个偶数范围? 喜欢的东西:番石榴的连续范围
Range.closed(0,10) //0,2,4,6,8,10
我明白,线上不会产生输出需要的,但这样的事情可能是:
Range.closed(0,10, SomeFunctionInterface<Integer>);
其中
interface SomeFunctionInterface<T>{
T computeNext(T first);
}
是否有可能在番石榴?这仍然是一个连续的范围,只是一定的规则适用于它。
我只对番石榴解决方案感兴趣。
“这仍然是一个连续的范围,只是一个特定的规则适用于它。”不是真的,因为它是'Integer'的范围,0和2等不是连续的'Integer'对象。如果你要创建一个'EvenInteger'类型和一个'DiscreteDomain'(注意:不要那样做),我猜可能是这种类型的一个连续范围。 Guava的'Range'预计会有一种比较每种你想使用的Java类型的规范方法,'ContiguousSet'需要一个规范的'DiscreteDomain'。 –
ColinD
2013-04-22 15:18:25
@ColinD你让我重新考虑这一点,我认为这是绝对正确的。 – Eugene 2013-04-22 15:23:05
从javadoc:'范围*凸:*只要包含两个值,它们之间的所有值也必须包含。更正式地说,对于类型为'C'的任何'c1 <= c2 <= c3','r.contains(c1)&& r.contains(c3)'意味着'r.contains(c2)'。这意味着'范围'永远不能用来表示,比如说“从1到100的所有素数。”' –
2013-04-22 16:39:19