gpt4 book ai didi

java - Guava 按规则连续范围

转载 作者:行者123 更新时间:2023-12-01 08:12:34 32 4
gpt4 key购买 nike

例如,是否可以在 Guava 中创建偶数范围?类似于:

Range.closed(0,10) //0,2,4,6,8,10

我知道上面的行不会产生所需的输出,但类似这样的输出可能是:

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

哪里

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

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

我只对 Guava 解决方案感兴趣。

最佳答案

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

要将范围转换为中间的、未过滤的集合,请创建一个 ContiguousSet 。为此,您需要一个 DiscreteDomain,它基本上就是您所描述的 SomeFunctionInterface。由于您正在处理整数,因此可以使用内置 DiscreteDomain.integers() .

要从那里到达仅包含偶数的集合,您可以编写一个谓词,然后将其和中间集传递给 Sets.filter .

关于java - Guava 按规则连续范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16141618/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com