【Java】guava(三) Range类

关于Api之类的就不介绍了,贴一个例子:

        Range<Integer> a1 = Range.closed(0,1);
        System.out.println(a1);
        Range<Integer> a2 = Range.open(0,1);
        System.out.println(a2);
        Range<Integer> a3 = Range.openClosed(0,1);
        System.out.println(a3);
        Range<Integer> a4 = Range.closedOpen(0,1);
        System.out.println(a4);
        Range<Integer> a5 = Range.atLeast(0);
        System.out.println(a5);
        Range<Integer> a6 = Range.greaterThan(0);
        System.out.println(a6);
        Range<Integer> a7 = Range.atMost(0);
        System.out.println(a7);
        Range<Integer> a8 = Range.lessThan(0);
        System.out.println(a8);

输出:

[0‥1]
(0‥1)
(0‥1]
[0‥1)
[0‥+∞)
(0‥+∞)
(-∞‥0]
(-∞‥0)

我们可以使用这个判定是否包含一个元素或者区间之间的操作,如交集,并集等。

 

这里介绍另外一个有关的应用,RangMap:

        RangeMap<Integer, String> level = TreeRangeMap.create();
        level.put(Range.closed(90,100), "A");
        level.put(Range.closedOpen(80,90), "B");
        level.put(Range.lessThan(80), "C");

        System.out.println(level.get(95));
        System.out.println(level.get(85));
        System.out.println(level.get(75));

我们可以使用Range来作为检索数据的key。

        RangeMap<Integer, String> level = TreeRangeMap.create();
        level.put(Range.closed(90,100), "A");
        level.put(Range.closedOpen(80,90), "B");
        level.put(Range.lessThan(80), "C");

        System.out.println(level.get(95));
        System.out.println(level.get(85));
        System.out.println(level.get(75));

guava中的Range工具类可以方便处理区间相关的问题,尤其适合与规则或者等级有关的业务逻辑,值得使用一哈。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值