Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 番石榴按规则连续分布_Java_Guava - Fatal编程技术网

Java 番石榴按规则连续分布

Java 番石榴按规则连续分布,java,guava,Java,Guava,例如,是否可以在番石榴中创建一系列偶数? 比如: Range.closed(0,10) //0,2,4,6,8,10 我知道上面这一行不会产生所需的输出,但类似的情况可能是: Range.closed(0,10, SomeFunctionInterface<Integer>); Range.closed(0,10,SomeFunctionInterface); 在哪里 interface SomeFunctionInterface<T>{ T comp

例如,是否可以在番石榴中创建一系列偶数? 比如:

Range.closed(0,10) //0,2,4,6,8,10
我知道上面这一行不会产生所需的输出,但类似的情况可能是:

Range.closed(0,10, SomeFunctionInterface<Integer>);
Range.closed(0,10,SomeFunctionInterface);
在哪里

 interface SomeFunctionInterface<T>{
      T computeNext(T first);
 }
interface SomeFunctionInterface{
T computeNext(T first);
}

用番石榴可以吗?这仍然是一个连续的范围,只是对其应用了某个规则


我只对番石榴汁感兴趣

如果您将两个操作组合在一起,番石榴可以支持这一点。首先,创建集合{0,1,2,3,4,5,6,7,8,9,10}。然后,你过滤它

要将
范围
转换为中间的未过滤集,请创建一个。为此,您需要一个
离散域
,它基本上就是您描述的
SomeFunctionInterface
。因为您处理的是整数,所以可以使用内置的


要从那里得到只有偶数的集合,您可以编写一个
谓词
,然后将它和中间集合传递给。

如果您将两个操作组合在一起,Guava可以支持这一点。首先,创建集合{0,1,2,3,4,5,6,7,8,9,10}。然后,你过滤它

要将
范围
转换为中间的未过滤集,请创建一个。为此,您需要一个
离散域
,它基本上就是您描述的
SomeFunctionInterface
。因为您处理的是整数,所以可以使用内置的


要从那里得到只有偶数的集合,您可以编写一个
谓词
,然后将它和中间集合传递给。

“这仍然是一个连续的范围,只是对其应用了某个规则。”这不是真的,因为它是一个
整数
的范围,0和2等不是连续的
整数
对象。如果要创建一个
EvenInteger
类型和一个
DiscreteDomain
(注意:不要这样做),我想它可能是该类型的一个连续范围。Guava的
Range
期望有一种标准的方法来比较您想要使用的每种Java类型,而
ContiguousSet
期望有一种标准的
DiscretedDomain
@colin,您让我重新思考了这一点,我认为这是绝对正确的。从javadoc中可以看出:“范围是凸的:每当包含两个值时,它们之间的所有值也必须包含在内。更正式地说,对于任何
c1,“这仍然是一个连续的范围,只是对其应用了某个规则。”这不是真的,因为它是
Integer
s的范围,0和2等不是连续的
Integer
对象。如果要创建一个
EvenInteger
类型和一个
DiscreteDomain
(注意:不要这样做),我想它可能是该类型的一个连续范围。Guava的
Range
期望有一种标准的方法来比较您想要使用的每种Java类型,而
ContiguousSet
期望有一种标准的
DiscretedDomain
@colin,您让我重新思考了这一点,我认为这是绝对正确的。从javadoc中可以看出:“范围是凸的:每当包含两个值时,它们之间的所有值也必须包含在内。更正式地说,对于任何
c1 FWIW,这会给你一个
Set
,而不是
Range
(还有FWIW,它是特意设计的,所以你不能得到
Range
,因为科林上面讨论的原因。)是的,我出于好奇,把你的问题扭曲成了我可以回答的东西:),你能用
套装过日子吗?或者可以使用
谓词
,该谓词是通过将原始
范围
(其本身实现了
谓词
)与
isEven
谓词组合而成的?也许可以将系统中需要
范围的部分更改为使用其中一个范围。(如果没有,我们可以尝试给你一些其他的建议,如果你想更详细地填写你的要求。)@ChrisPovirk thx,没有任何要求:)这只是一个好奇。其实我会接受的,因为没有办法。不是我想要的答案,但足够接近。干杯FWIW,这给了你一个
集合
,而不是
范围
(而且FWIW,出于科林上面讨论的原因,它是特意设计的,所以你不能得到
范围
。)是的,我把你的问题扭曲成了我可以回答的东西:)出于好奇,你能用
集合
?或者可以使用
谓词
,该谓词是通过将原始
范围
(其本身实现了
谓词
)与
isEven
谓词组合而成的?也许可以将系统中需要
范围的部分更改为使用其中一个范围。(如果没有,我们可以尝试给你一些其他的建议,如果你想更详细地填写你的要求。)@ChrisPovirk thx,没有任何要求:)这只是一个好奇。其实我会接受的,因为没有办法。不是我想要的答案,但足够接近。干杯