guava(四)区间Ranges
一、构建区间
(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的更多相关文章
- [转载]Google Guava官方教程(中文版)
原文链接 译文链接 译者: 沈义扬,罗立树,何一昕,武祖 校对:方腾飞 引言 Guava工程包含了若干被Google的 Java项目广泛依赖 的核心库,例如:集合 [collections] ...
- Guava学习-目录
备份一下地址: 目录 1. 基本工具 [Basic utilities] 让使用Java语言变得更舒适 1.1 使用和避免null:null是模棱两可的,会引起令人困惑的错误,有些时候它让人很不舒服. ...
- Google Guava官方教程(中文版)
Google Guava官方教程(中文版) 原文链接 译文链接 译者: 沈义扬,罗立树,何一昕,武祖 校对:方腾飞 引言 Guava工程包含了若干被Google的 Java项目广泛依赖 的核心库, ...
- com.google.guava 包解析 ——Google Guava官方教程(中文版)
全网址 http://ifeve.com/google-guava/ 竹子博客: http://www.cnblogs.com/peida/archive/2013/06/08/ ...
- Google的Java经常使用类库 Guava
Guava 中文是石榴的意思,该项目是 Google 的一个开源项目,包括很多 Google 核心的 Java 经常使用库. 1. 基本工具 [Basic utilities] 让使用Java ...
- 初探Google Guava
Guava地址:https://github.com/google/guava 第一次接触我是在16年春github上,当时在找单机查缓存方法,google guava当初取名是因为JAVA的类库不好 ...
- Guava 1:概览
一.引言 都说java是开源的,但是除了JDK外,能坚持更新且被广泛认可的开源jar包实在是不可多得.其中最显眼的自然是guava了,背靠google自然底气十足,今天就来解开guava的面纱,初探一 ...
- Google Guava新手教程
以下资料整理自网络 一.Google Guava入门介绍 引言 Guavaproject包括了若干被Google的 Java项目广泛依赖 的核心库,比如:集合 [collections] . ...
- Google Guava官方教程
原文链接 译文链接 译者: 沈义扬,罗立树,何一昕,*武祖 * 校对:方腾飞 引言 Guava工程包含了若干被Google的 Java项目广泛依赖 的核心库,例如:集合 [collections] . ...
随机推荐
- cd 到目录自动ls
$vim ~/.bashrc 文件末尾加入: cdls() { cd "${1}" ls; } alias cd='cdls' $source ~/.bashrc
- css 如何让大小不同的图片表现一致,同时自适应呢?
壹 ❀ 引 实习生在做产品分类页时,遇到了一个她不知道如何解决问题,所以来问我应该怎么做:问题其实不难,由于项目使用了bootstrap来实现响应式与自适应,所以除了宽度有明确的百分比值之外(栅格化 ...
- 15-scrapy-redis两种形式分布式爬虫
什么叫做分布式爬虫? 分布式爬虫,就是多台机器共用一个scrapy—redis程序高效爬取数据, 为啥要用分布式爬虫? 其一:因为多台机器上部署的scrapy会各自拥有各自的调度器,这样就使得多台机器 ...
- spring的事件
理论 异步的实现方式可以使用事件,或者异步执行: spring中自带了事件的支持,核心是ApplicationEventPublisher; 事件包括三个要点: 事件的定义: 事件监听的定义: 发布事 ...
- MongoDB自学------(5)MongoDB分片
分片 在Mongodb里面存在另一种集群,就是分片技术,可以满足MongoDB数据量大量增长的需求. 当MongoDB存储海量的数据时,一台机器可能不足以存储数据,也可能不足以提供可接受的读写吞吐量. ...
- tinker接入
对于热修复无非就是两大类,一类是tencent代表的classloader模式的,另一类是阿里系代表的底层方面替换. 下面以本人的经验介绍下微信的tinker接入: 命令行接入方式: gradle接入 ...
- 剑指offer 18:树的子结构
题目描述 输入两棵二叉树A,B,判断B是不是A的子结构.(ps:我们约定空树不是任意一个树的子结构) 解题思路 验证B是不是A的子树,直觉做法,按照任意次序遍历A树,一旦出现和B树根节点相同的子节点, ...
- Android 工程的创建
还望支持个人博客站:http://www.enjoytoday.cn 本章节主要介绍如何开始Android工程的创建和android开发过程中需要的一些简单的技巧和知识.首篇文章主要介绍如何开始And ...
- 【JavaWeb】Ajax基础
Ajax介绍 Asynchronous JavaScript And XML(异步的JavaScript和XML): Ajax可以在不刷新页面的前提下,进行页面局部更新: Ajax不是新的技术,Aja ...
- [转]Eclipse插件开发之基础篇(4) OSGi框架
原文地址:http://www.cnblogs.com/liuzhuo/archive/2010/08/18/eclipse_plugin_1_2_1.html 1. 什么是OSGi框架 OSGi(O ...