NavigableSet接口

第1部分 NavigableSet接口介绍

NavigableSet接口简介

NavigableSet继承了SortedSet,因此具备SortedSet,Set, Collection, Iterable接口的方法属性。
Navigable译为可导航的,提供了"边界"处理,以及提供了一个逆序迭代器。

NavigableSet接口常用API

修饰语和返回类型自身方法描述
Elower(E e)获取小于e的最大元素
Efloor(E e)获取小于或等于e的最大元素
Eceiling(E e)获取大于或等于e的最小元素
Ehigher(E e)获取大于e的最小元素
EpollFirst(E e)移除并返回首元素
EpollLast(E e)移除并返回尾元素
NavigableSet<E>descendingSet()获取元素逆序(降序)集合
Iterator<E>descendingIterator()获取逆序迭代器
NavigableSet<E>subSet(E fromElement, boolean fromInclusive, E toElement, boolean toInclusive根据给定区间获取元素集合
NavigableSet<E>headSet(E toElement, boolean inclusive)获取元素首部集合
NavigableSet<E>tailSet(E fromElement, boolean inclusive)获取元素尾部集合

从这些API中可以看出,NavigableSet译为可导航集合,相比SortedSet提供了获取临近元素,移除首尾元素,以及根据给定参数判断区间边界的方法。总的来说,NavigableSet相比SortedSet多了层“临界”的意思。

第2部分 NavigableSet接口数据结构

NavigableSet接口的继承关系

java.lang.Object
   ↳   java.lang.Iterable<E>
   		↳  java.util.Collection<E>
   			↳  java.util.Set<String>
   				↳  java.util.SortedSet<E>
   					↳

public interface NavigableSet<E> extends SortedSet<E> {}

NavigableSet接口的关系
在这里插入图片描述
图1 NavigableSet接口的关系图

第3部分 NavigableSet接口源码解析(基于JDK-8u201)

public interface NavigableSet<E> extends SortedSet<E> {
    E lower(E e);
    E floor(E e);
    E ceiling(E e);
    E higher(E e);
    E pollFirst();
    E pollLast();
    NavigableSet<E> descendingSet();
    Iterator<E> descendingIterator();
    //Inclusive为包含的意思,以下三个方法,都用给定参数,判断边界是否要被包含
    NavigableSet<E> subSet(E fromElement, boolean fromInclusive,
                           E toElement,   boolean toInclusive);
    NavigableSet<E> headSet(E toElement, boolean inclusive);
    NavigableSet<E> tailSet(E fromElement, boolean inclusive);
    
/**********************以下方法分别继承自Iterable和SortedSet********/
    Iterator<E> iterator();
    SortedSet<E> subSet(E fromElement, E toElement);
    SortedSet<E> headSet(E toElement);
    SortedSet<E> tailSet(E fromElement);
}

了解Navigable的"临界"性质,就可以很容易理解这些方法了。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值