Google Guava学习(4)-Guava Range类
来源:互联网 发布:mac系统能玩什么网游 编辑:程序博客网 时间:2024/06/05 11:06
1.功能:数据范围处理
2.代码:
package com.example.google.guava.demo.clazz;import com.google.common.collect.ContiguousSet;import com.google.common.collect.DiscreteDomain;import com.google.common.collect.Range;import com.google.common.primitives.Ints;/** * <p> * <code>RangeTest</code> * </p> * Description: * * @author Mcchu * @date 2017/10/19 9:06 */public class RangeTest { public static void main(String[] args) { testRange(); } private static void testRange(){ // 1.使用Range.closed()创建范围: [a,b] = { x | a <= x <= b} Range<Integer> range1 = Range.closed(0, 9); System.out.println("新建数据范围range1:"+range1); printRange(range1); // 1.1包含关系 Boolean containVal = range1.contains(1); Boolean containAllVal1 = range1.containsAll(Ints.asList(1,3,5)); Boolean containAllVal2 = range1.containsAll(Ints.asList(1,3,5,12)); System.out.println("是否包含1:"+containVal); System.out.println("是否包含1,3,5:"+containAllVal1); System.out.println("是否包含1,3,5,12:"+containAllVal2); // 1.2边界值 Boolean bol1 = range1.hasLowerBound(); Boolean bol2 = range1.hasUpperBound(); System.out.println("是否存在最小边界值:"+bol1); System.out.println("是否存在最大边界值:"+bol2); Integer lower = range1.lowerEndpoint(); Integer upper = range1.upperEndpoint(); System.out.println("最小边界值:"+lower); System.out.println("最大边界值:"+upper); System.out.println(); // 2.使用Range.open()创建范围: (a,b) = { x | a < x < b} Range<Integer> range2 = Range.open(0,9); System.out.println("新建数据范围range2:"+range2); printRange(range2); System.out.println(); // 3.使用Range.openClosed()创建范围: (a,b] = { x | a < x <= b} Range<Integer> range3 = Range.openClosed(0, 9); System.out.println("新建数据范围range3:"+range3); printRange(range3); System.out.println(); // 4.使用Range.closedOpen()创建范围: [a,b) = { x | a <= x < b} Range<Integer> range4 = Range.closedOpen(0, 9); System.out.println("新建数据范围range4:"+range4); printRange(range4); System.out.println(); // 5.右无穷大 a>9 Range<Integer> range5 = Range.greaterThan(9); System.out.println("新建数据范围range5:"+range5); // 5.1边界值 Boolean bol3 = range5.hasLowerBound(); Boolean bol4 = range5.hasUpperBound(); System.out.println("是否存在最小边界值:"+bol3); System.out.println("是否存在最大边界值:"+bol4); Integer lower1 = range5.lowerEndpoint(); //Integer upper1 = range5.upperEndpoint(); //抛java.lang.IllegalStateException: range unbounded on this side System.out.println("最小边界值:"+lower1); //System.out.println("最大边界值:"+upper1); System.out.println(); // 6.子范围 Range<Integer> range6 = Range.closed(3, 5); System.out.println("新建数据范围:"+range6); printRange(range6); Boolean subRange = range1.encloses(range6); System.out.println("范围range1是否包含range6:"+subRange); System.out.println(); // 7.承接关系 Range<Integer> range7 = Range.closed(9, 20); System.out.println("新建数据范围:"+range7); printRange(range7); Boolean connected = range7.isConnected(range1); System.out.println("范围range7是否承接range1:"+connected); System.out.println(); // 8.范围交叉,取交集、并集 Range<Integer> range8 = Range.closed(5, 15); Range<Integer> intersection = range1.intersection(range8); System.out.println("范围range1和range8的交集:"+intersection); printRange(intersection); Range<Integer> span = range1.span(range8); System.out.println("范围range1和range8的并集:"+span); printRange(span); } private static void printRange(Range<Integer> range){ System.out.print("具体数据范围:"); System.out.print("[ "); for(int grade : ContiguousSet.create(range, DiscreteDomain.integers())) { System.out.print(grade +" "); } System.out.println("]"); }}2.输出结果:
新建数据范围range1:[0..9]具体数据范围:[ 0 1 2 3 4 5 6 7 8 9 ]是否包含1:true是否包含1,3,5:true是否包含1,3,5,12:false是否存在最小边界值:true是否存在最大边界值:true最小边界值:0最大边界值:9新建数据范围range2:(0..9)具体数据范围:[ 1 2 3 4 5 6 7 8 ]新建数据范围range3:(0..9]具体数据范围:[ 1 2 3 4 5 6 7 8 9 ]新建数据范围range4:[0..9)具体数据范围:[ 0 1 2 3 4 5 6 7 8 ]新建数据范围range5:(9..+∞)是否存在最小边界值:true是否存在最大边界值:false最小边界值:9新建数据范围:[3..5]具体数据范围:[ 3 4 5 ]范围range1是否包含range6:true新建数据范围:[9..20]具体数据范围:[ 9 10 11 12 13 14 15 16 17 18 19 20 ]范围range7是否承接range1:true范围range1和range8的交集:[5..9]具体数据范围:[ 5 6 7 8 9 ]范围range1和range8的并集:[0..15]具体数据范围:[ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ]
附录:
参考:http://www.yiibai.com/guava/guava_range_class.html
阅读全文
0 0
- Google Guava学习(4)-Guava Range类
- Google Guava学习(1)-Guava Optional类
- Google Guava学习(2)-Guava Preconditions类
- Google Guava学习(3)-Guava Ordering类
- Google Guava学习(5)-Guava Throwables类
- Guava学习之Range
- Guava学习笔记:Range
- Guava学习笔记:Range
- Guava学习笔记:Range
- Guava学习笔记:Range
- Guava学习笔记:Range
- Guava学习——Range类
- Guava学习笔记:Google Guava 类库简介
- Guava学习笔记:Google Guava 类库简介
- Guava学习笔记:Google Guava 类库简介
- Guava学习笔记:Google Guava 类库简介
- Guava学习笔记:Google Guava 类库简介
- Guava学习笔记:Google Guava 类库简介
- windows64系统安装和配置mongodb
- 牙膏大解迷
- cadence设计PCB流程
- 通过websocket 实现与容器的交互
- xshell的快捷键
- Google Guava学习(4)-Guava Range类
- 实验三链栈
- Android 之ArrayAdapter
- [APP开发技巧] 数据库字段Pointer的操作方法
- OpenGL学习笔记——Blending
- C# 中GUID生成格式的四种格式
- 通过cmd想本地maven仓库添加jar
- Tutorial: Build Your First Tensorflow Android App
- 用户和文件权限管理