Java中的NavigableSet,SortedSet和TreeSet之间的区别

时间:2013-11-06 19:03:25

标签: java set treeset sortedset

  • TreeSet将元素放入自然排序或提供的元素 比较
  • SortedSet也会将元素保留在自然顺序

但他们和NavigableSet?之间有什么区别 NavigableSets在哪里有用?

显示其用法的一些示例对初学者来说很不错。

5 个答案:

答案 0 :(得分:20)

SortedSet是一个接口(它定义了功能),Treeset是一个实现。 NavigableSet也是SortedSet的接口子类型。

你不能只写SortedSet<Integer> example = new SortedSet<Integer>();

但您可以写SortedSet<Integer> example = new TreeSet<Integer>();

顾名思义,NavigableSets对于浏览集合更有用。

http://mrbool.com/overview-on-navigableset-subtype-of-java-collections/25417提供了一个很好的NavigableSets教程和一些使用的方法,这些方法在SortedSet中不可用。

答案 1 :(得分:3)

我希望你能从以下Java docs的摘录中找到有用的内容(参见更多细节链接):

  

方法降低发言权上限更高   返回元素分别小于,小于或等于,大于   大于或等于,大于给定的元素。

答案 2 :(得分:2)

我认为this是一个很好的参考,并且有不错的解释。

答案 3 :(得分:1)

NavigableSet添加了导航方法,如descendingIterator()和descendingSet(),ceiling(),floor(),higher(),lower(),headSet(),tailSet(),subSet(),pollFirst()和pollLast( )。

答案 4 :(得分:1)

TreeSet实现了NavigableSet,而(interface)NavigableSet扩展了SortedSet