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();
相關文章
相關標籤/搜索