RangeMap 类 - Google Guava

一、RangeMap简介

RangeMap 是一种集合类型(collection type),它将不相交、且不为空的 Range(key)映射给一个值(Value)。和 RangeSet不一样,RangeMap 不可以将相邻的区间合并,即使这个区间映射的值是一样的。

和 RangeSet 一样,实现 RangeMap 也是一个接口,实现它的也只有两个类,分别为 mmutableRangeMap 和 TreeRangeMap。用的多的还是 TreeRangeMap,下面主要以 TreeRangeMap 来说明 RangeMap。

 

二、常用方法

官方文档:https://google.github.io/guava/releases/27.0.1-jre/api/docs/com/google/common/collect/RangeMap.html

修饰符和类型方法描述
Map<Range<K>,V>

asDescendingMapOfRanges() 

将此范围映射的视图作为不可修改的Map<range,V>返回.

Map<Range<K>,V>

asMapOfRanges() 

将此范围映射的视图作为不可修改的Map<range,V>返回.

void

clear() 

从此范围映射中删除所有关联.

boolean

equals(@Nullable Object o) 

如果obj是另一个具有等效asMapOfRanges()的RangeMap,则返回true.

V

get(K key) 

返回与指定键关联的值,如果没有此值,则返回null.

@Nullable Map.Entry<Range<K>,V>

getEntry(K key) 

如果范围映射中存在此类范围,则返回包含此键及其关联值的范围,否则返回null.

int

hashCode() 

返回 asMapOfRanges().hashCode().

void

put(Range<K> range, V value) 

将范围映射到指定值.

void

putAll(RangeMap<K,V> rangeMap) 

将rangeMap中的所有关联放入此范围映射中.

void

putCoalescing(Range<K> range, V value) 

将范围映射到指定值,将此范围与具有与此范围相连的相同值的任何现有范围合并.

void

remove(Range<K> range) 

从指定范围内的此范围映射中删除所有关联.

Range<K>

span() 

返回包含此RangeMap中范围的最小范围.

RangeMap<K,V>

subRangeMap(Range<K> range) 

返回此范围映射的与范围相交的部分的视图.

String

toString() 

返回此范围映射的可读字符串表示形式

RangeMap<Integer, String> rangeMap = TreeRangeMap.create();
rangeMap.put(Range.closed(1, 10), "aaa");
System.out.println(rangeMap);

rangeMap.put(Range.open(3, 6), "bbb");
System.out.println(rangeMap);

rangeMap.put(Range.openClosed(10, 20), "aaa");
System.out.println(rangeMap);

rangeMap.put(Range.closed(20, 20), "aaa");
System.out.println(rangeMap);

rangeMap.remove(Range.closed(5, 11));
System.out.println(rangeMap);

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值