Java集合<7> (NavigableSet)

java.util.NavigableSet 接口是java.util.SortedSet接口的子接口,它的行为特色和SortedSet相似。java

除了拥有SortedSet的排序同能外还有一系列的导航方法。
spa

在java6中NavigableSet只有TreeSet这一个实现类。code

descendingIterator() and descendingSet()

NavigableSet original = new TreeSet();
// add somedata...
NavigableSet reverse = original.descendingSet();

descendingSet()方法返回一个与originall顺序相反的一个set集合。
排序

返回的reverse集合是依靠original存在的,若是改变了reverse集合中的元素接口

同时也会对original中产生影响。ast

Iterator reverse = original.descendingIterator();

descendingIterator()方法容许你以迭代的方式去操做set集合而且而且不会改变集合内部顺序。class

headSet(),tailSet()和subSet()

NavigableSet original = new TreeSet();
original.add("1");
original.add("2");
original.add("3");
// 返回元素"3"以前的全部元素集合 "headset 包含 "1","2"
// 返回的headset与original中存储的数据其实有着相同的引用
// 因此对headset的改变会做用到original上。
SortedSet headset = original.headSet("3");

// boolean 类型参数表明是否包含本元素
// headset 包含 "1","2","3"
NavigableSet headset = original.headSet("3",true);

tailSet()方法工做原理headSet()方法一致,它返回的是比传入元素更大的集合。原理

subSet()方法则容许传入两个集合中的元素来肯定起始与结束位置
引用

NavigableSet original = new TreeSet();
original.add("1");
original.add("2");
original.add("3");
original.add("4");
original.add("5");

// subset 中只包含"2","3"
SortedSet subset = original.subSet("2","4");

// subset 中将包含"2","3","4"
NavigableSet subset = original.subSet("2",true,"4",true);

ceiling(),floor(),higher()和lower()

ceiling()方法将返回大于等于给定元素的全部元素中最小的一个元素。
方法

floor()方法则与ceiling()相反,它返回一个小于等于指定元素的全部元素中最大的一个元素。

NavigableSet original = new TreeSet();
original.add("1");
original.add("2");
original.add("3");

// ceilling = "2"
Object ceiling = original.ceiling("2");
// floor = "2"
Object floor = original.floor("2");

higher()方法返回大于指定元素中全部元素最小的一个元素

lower()方法与higher()相反,它返回小于指定元素中全部元素最大的一个

NavigableSet original = new TreeSet();
original.add("1");
original.add("2");
original.add("3");

//higher = "3".
Object higher = original.higher("2");

//lower = "1"
Object lower = original.lower("2");

pollFirst()和pollLst()

pollFirst()方法返回而且删除在NavigableSet中第一个元素,若是集合为空则返回null

pollLst()方法则返回而且删除NavigableSet中最后一个元素,集合为空也返回null

NavigableSet original = new TreeSet();
original.add("1");
original.add("2");
original.add("3");


//first = "1"
Object first = original.pollFirst();

//last = "3"
Object last = original.pollLast();
相关文章
相关标签/搜索