繁体   English   中英

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

[英]Difference between NavigableSet, SortedSet and TreeSet in Java

  • TreeSet将元素放在自然顺序中或由提供的比较器放置。
  • SortedSet还使元素保持自然顺序

但是它们和NavigableSet?区别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文档中找到以下摘录(请参阅更多详细信息的链接):

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM