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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java中的NavigableSet,SortedSet和TreeSet之间的区别相关的知识,希望对你有一定的参考价值。

  • TreeSet将元素置于自然顺序或由提供的比较器。
  • SortedSet也使元素保持自然顺序

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

显示其用法的一些示例对于初学者来说会很好。

答案

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中不可用。

另一答案

我希望您能从Java docs的以下摘录中找到有用的内容(请参阅更多详细信息的链接):

方法较低,地板,天花板和较高的返回元素分别小于,小于或等于,大于或等于,并且大于给定元素。

另一答案

我觉得this是一个很好的参考,有很好的解释。

另一答案

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

另一答案

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

以上是关于Java中的NavigableSet,SortedSet和TreeSet之间的区别的主要内容,如果未能解决你的问题,请参考以下文章

Java--集合

一起学习集合框架之 TreeSet

(Java) LeetCode 83. Remove Duplicates from Sorted List —— 删除排序链表中的重复元素

LeetCode算法题-Merge Sorted Array(Java实现)

Java笔记:集合框架

java集合概述