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

时间:2016-05-26 12:08:29

标签: 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不在范围内,因为它是closedOpen而60不在范围内,因为它也是closedOpen。​​

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

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

1 个答案:

答案 0 :(得分:2)

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

然后你可以使用

set.first()

set.last()

获取您想要的值。