java - 如何从 Guava 范围类获取正确的字符串

标签 java guava rangeset

例如,我执行以下操作:

RangeSet<Long> rangeSet = TreeRangeSet.create();;
rangeSet.add(Range.closed(20L,29L).canonical(DiscreteDomain.longs())); 
rangeSet.add(Range.closed(10L,19L).canonical(DiscreteDomain.longs()));
rangeSet.add(Range.closed(50L,59L).canonical(DiscreteDomain.longs()));
System.out.println(rangeSet);

我得到以下输出:

[[0‥30),[50‥60)]

据我所知,30 不在范围内,因为它是 closeOpen,60 不在范围内,因为它也是 closeOpen。​​

如何从 Range 类中获取以下字符串?

[0‥30) contains numbers from 0 to 29
[50‥60) contains numbers from 50 to 59

最佳答案

ContiguousSet<Long> set =
    ContiguousSet.create(range, DiscreteDomain.longs());

然后就可以使用

set.first()

set.last()

获取您想要的值。

关于java - 如何从 Guava 范围类获取正确的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37460439/

相关文章:

java - AEM 6.1 Sightly Java 类不会在构建时更新

java - Jax-ws:在数据库中记录请求和响应

java - 如何使用 java 驱动程序将文档与 mongodb 中的现有数组元素匹配

java - 为什么这些表达式给我输出而不是编译错误?

java - 为什么 Guava -sources jar 几乎是空的? (GWT 需要)

scala - Scala 中是否有范围数据结构?

eclipse - 使用google guava错误-不在公共(public)后缀: display_url下

java - 将单个元素添加到不可变集合的有效且优雅的方法是什么?

c++ - 用于 C++ 的整数区间容器,例如 RangeSet