例如,是否可以在番石榴中創建一個偶數範圍? 喜歡的東西:番石榴的連續範圍
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