一、构建区间

(a..b) open(C, C)
[a..b] closed(C, C)
[a..b) closedOpen(C, C)
(a..b] openClosed(C, C)
(a..+∞) greaterThan(C)
[a..+∞) atLeast(C)
(-∞..b) lessThan(C)
(-∞..b] atMost(C)
(-∞..+∞) all()
有界区间 range(C, BoundType, C,   BoundType)
无上界区间:((a..+∞) 或[a..+∞)) downTo(C, BoundType)
无下界区间:((-∞..b) 或(-∞..b]) upTo(C, BoundType)

二、区间运算

contains

Range.closed(1,10).contains(8) //true

三、查询运算

1、isEmpty() 是否为空区间

Range.closed(10,10).isEmpty() //true

2、hasLowerBound 是否含有下限

Range.closed(10,10).hasLowerBound() //true

3、hasUpperBound 是否含有上限

Range.greaterThan(10).hasUpperBound() //false

4、lowerBoundType 下边界类型,如果区间没有对应的边界,抛出IllegalStateException

Range.greaterThan(10).lowerBoundType() //OPEN

5、upperBoundType 上边界类型,如果区间没有对应的边界,抛出IllegalStateException

Range.closed(2,10).upperBoundType() //CLOSED

6、 lowerEndpoint 下限值,如果区间没有对应的边界,抛出IllegalStateException

Range.closed(2,10).lowerEndpoint() //2

7、upperEndpoint 上限值,如果区间没有对应的边界,抛出IllegalStateException

Range.closed(2,10).upperEndpoint() //上限值

四、关系运算

1、encloses 是否包含

Range.closed(2,10).encloses(Range.closed(3,3)) //true

2、isConnected 是否相连

Range.closed(2,10).isConnected(Range.closed(12,30))//false

3、intersection 交集 ,当且仅当两个区间是相连的,它们才有交集。如果两个区间没有交集,该方法将抛出IllegalArgumentException

Range.closed(2,10).intersection(Range.closed(8,13)) //[8,10]

4、span 并集

Range.closed(2,8).span(Range.closed(12,13))//[2,13]

guava(四)区间Ranges的更多相关文章

  1. [转载]Google Guava官方教程(中文版)

      原文链接  译文链接 译者: 沈义扬,罗立树,何一昕,武祖  校对:方腾飞 引言 Guava工程包含了若干被Google的 Java项目广泛依赖 的核心库,例如:集合 [collections] ...

  2. Guava学习-目录

    备份一下地址: 目录 1. 基本工具 [Basic utilities] 让使用Java语言变得更舒适 1.1 使用和避免null:null是模棱两可的,会引起令人困惑的错误,有些时候它让人很不舒服. ...

  3. Google Guava官方教程(中文版)

    Google Guava官方教程(中文版) 原文链接  译文链接 译者: 沈义扬,罗立树,何一昕,武祖  校对:方腾飞 引言 Guava工程包含了若干被Google的 Java项目广泛依赖 的核心库, ...

  4. com.google.guava 包解析 ——Google Guava官方教程(中文版)

    全网址           http://ifeve.com/google-guava/ 竹子博客:  http://www.cnblogs.com/peida/archive/2013/06/08/ ...

  5. Google的Java经常使用类库 Guava

    Guava 中文是石榴的意思,该项目是 Google 的一个开源项目,包括很多 Google 核心的 Java 经常使用库. 1. 基本工具 [Basic utilities]     让使用Java ...

  6. 初探Google Guava

    Guava地址:https://github.com/google/guava 第一次接触我是在16年春github上,当时在找单机查缓存方法,google guava当初取名是因为JAVA的类库不好 ...

  7. Guava 1:概览

    一.引言 都说java是开源的,但是除了JDK外,能坚持更新且被广泛认可的开源jar包实在是不可多得.其中最显眼的自然是guava了,背靠google自然底气十足,今天就来解开guava的面纱,初探一 ...

  8. Google Guava新手教程

         以下资料整理自网络 一.Google Guava入门介绍 引言 Guavaproject包括了若干被Google的 Java项目广泛依赖 的核心库,比如:集合 [collections] . ...

  9. Google Guava官方教程

    原文链接 译文链接 译者: 沈义扬,罗立树,何一昕,*武祖 * 校对:方腾飞 引言 Guava工程包含了若干被Google的 Java项目广泛依赖 的核心库,例如:集合 [collections] . ...

随机推荐

  1. hyper-v简介及安装使用

     前言:作为IT界的巨头,微软自己的虚拟化技术,也是微软第一个采用Vmware与CitrixXen一样基于hypervisor的虚拟化技术,有着自己可圈可点的地方,微软自己的虚拟化技术嘛,对windo ...

  2. 1+x 证书 Web 前端开发中级理论考试(试卷 7 ) 答案

    1+x 证书 Web 前端开发中级理论考试(试卷 7 ) 答案 转载请注明来源:妙笔生花个人博客http://blog.zh66.club/index.php/archives/438/ 官方QQ群 ...

  3. Unity TextMeshPro替代Text组件创建简体中文字体纹理集

    Unity原生的Text组件有一个毛病,只要文本放大字体放大就会有毛边或锯齿,一个更好的解决方案是用TextMeshPro替代ugui中的Text组件. TMPro采用SDF文字渲染技术,可以使文字放 ...

  4. pandas 学习 第1篇:pandas基础 - 数据结构和数据类型

    pandas是基于NumPy构建的模块,含有使数据分析更快更简单的操作工具和数据结构,是数据分析必不可少的五个包之一.pandas包含序列Series和数据框DataFrame两种最主要数据结构,索引 ...

  5. angular 前端路由不生效解决方案

    angular 前端路由不生效解决方案 Intro 最近使用 Angular 为我的活动室预约项目开发一个前后端分离的客户端,在部署上遇到了一个问题,前端路由不生效,这里记录一下.本地开发正常,但是部 ...

  6. U8 BOM数据结构

    U8 BOM涉及的数据表有四张 bom_bom     BOM资料  该表主要记录BOM表的一些基本信息,版本.创建.审核等信息,不包括任何子件.母件信息:bomid是BOM主键 bom_parent ...

  7. WPF/.net core WPF 系统托盘支持

    WPF 原生不支持系统托盘图标,需要依靠其它方式处理. 1 使用 WinForm 的支持 WPF最小到系统托盘 - Arvin.Mei - 博客园 2 使用 wpf-notifyicon 库 hard ...

  8. 用 Python 监控知乎和微博的热门话题

    前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: TED Crossin的编程教室 PS:如有需要Python学习资料 ...

  9. Java生鲜电商平台-深刻理解电商的库存架构与解决方案

    Java生鲜电商平台-深刻理解电商的库存架构与解决方案 说明:一般电商的库存都是跟SKU相关联的,那么怎么样才能进行SKU的库存管理呢?有以下几种方式与方法: 一.七大库存分类 首先得学习什么是库存, ...

  10. vue学习笔记(二): 添加 element ui 插件

    一.加载 ui element vue add element 加载过程及成功结果如下 > vue add element>