Java中navigableSet、SortedSet和TreeSet的区别?

时间:2021-06-12 17:50:29

TreeSet puts the element in natural ordering or by the provided comparator.

TreeSet将元素放入自然排序或由提供的比较器进行排序。

A sortedSet is also keeps the element in natural order

sortedSet还保持元素的自然顺序

but what is the difference between them and navigableSet?

但是它们和navigableSet有什么区别呢?

where are navigableSets useful? some example to show its use would be nice for beginners.

navigableSets哪里有用吗?对于初学者来说,展示它的一些例子是很好的。

5 个解决方案

#1


15  

SortedSet is an interface (it defines the functionality) and Treeset is an implementation. NavigableSet is also an interface subtype of the SortedSet.

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

You can't just write SortedSet<Integer> example = new SortedSet<Integer>();

不能只写SortedSet 示例= new SortedSet ();

You can however write SortedSet<Integer> example = new TreeSet<Integer>();

但是可以编写SortedSet 示例= new TreeSet ();

As its name implies, NavigableSets are more useful for navigating through the set.

顾名思义,NavigableSets在整个集合中导航更有用。

http://mrbool.com/overview-on-navigableset-subtype-of-java-collections/25417 offers a good tutorial on NavigableSets and some of the methods available when using one, that aren't available in a SortedSet.

http://mrbool.com/overviewon -navigableset-sub - type of java-collections/25417提供了一个关于NavigableSets的很好的教程,以及一些在使用NavigableSets时可用的方法,这些方法在SortedSet中是不可用的。

#2


2  

I hope you will find useful the following excerpt from Java docs (see link to more details):

我希望您能从Java文档中找到以下有用的摘录(参见链接到更多细节):

Methods lower, floor, ceiling, and higher return elements respectively less than, less than or equal, greater than or equal, and greater than a given element.

方法低、底板、顶板和高回报元素分别小于、小于或等于、大于或等于、大于给定元素。

#3


1  

I feel this is a well demonstrated reference with decent explanation.

我觉得这是一个很好的说明,有很好的解释。

#4


0  

NavigableSet adds Navigation methods like descendingIterator() and descendingSet(), ceiling(), floor(), higher(), lower(), headSet(), tailSet(), subSet(), pollFirst() and pollLast().

NavigableSet增加了导航方法,如下降迭代器()和下降集()、天花板()、地板()、更高()、更低()、耳机()、尾端()、子集()、pollFirst()和pollLast()。

#5


0  

TreeSet implements NavigableSet, and (interface) NavigableSet extends SortedSet

TreeSet实现了NavigableSet,(接口)NavigableSet扩展了SortedSet

#1


15  

SortedSet is an interface (it defines the functionality) and Treeset is an implementation. NavigableSet is also an interface subtype of the SortedSet.

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

You can't just write SortedSet<Integer> example = new SortedSet<Integer>();

不能只写SortedSet 示例= new SortedSet ();

You can however write SortedSet<Integer> example = new TreeSet<Integer>();

但是可以编写SortedSet 示例= new TreeSet ();

As its name implies, NavigableSets are more useful for navigating through the set.

顾名思义,NavigableSets在整个集合中导航更有用。

http://mrbool.com/overview-on-navigableset-subtype-of-java-collections/25417 offers a good tutorial on NavigableSets and some of the methods available when using one, that aren't available in a SortedSet.

http://mrbool.com/overviewon -navigableset-sub - type of java-collections/25417提供了一个关于NavigableSets的很好的教程,以及一些在使用NavigableSets时可用的方法,这些方法在SortedSet中是不可用的。

#2


2  

I hope you will find useful the following excerpt from Java docs (see link to more details):

我希望您能从Java文档中找到以下有用的摘录(参见链接到更多细节):

Methods lower, floor, ceiling, and higher return elements respectively less than, less than or equal, greater than or equal, and greater than a given element.

方法低、底板、顶板和高回报元素分别小于、小于或等于、大于或等于、大于给定元素。

#3


1  

I feel this is a well demonstrated reference with decent explanation.

我觉得这是一个很好的说明,有很好的解释。

#4


0  

NavigableSet adds Navigation methods like descendingIterator() and descendingSet(), ceiling(), floor(), higher(), lower(), headSet(), tailSet(), subSet(), pollFirst() and pollLast().

NavigableSet增加了导航方法,如下降迭代器()和下降集()、天花板()、地板()、更高()、更低()、耳机()、尾端()、子集()、pollFirst()和pollLast()。

#5


0  

TreeSet implements NavigableSet, and (interface) NavigableSet extends SortedSet

TreeSet实现了NavigableSet,(接口)NavigableSet扩展了SortedSet