22
  • ATreeSet将元素置于自然排序或通过提供的 比较器
  • ASortedSet也使元素保持自然顺序

但是它们之间有什么区别,NavigableSet?
在哪里NavigableSets有用?

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

4

5 回答 5

26

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

于 2013-11-06T19:42:35.110 回答
3

我希望您会发现以下Java 文档摘录对您有用(请参阅更多详细信息的链接):

方法lowerfloorceilingHigher 分别返回小于、小于或等于、大于或等于和大于给定元素的元素。

于 2013-11-06T19:11:13.187 回答
3

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

于 2016-12-17T08:18:24.880 回答
2

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

于 2013-11-06T19:21:25.330 回答
1

NavigableSet 增加了诸如descendingIterator() 和descendingSet(), 天花板(), floor(), Higher(), lower(), headSet(), tailSet(), subSet(), pollFirst() 和pollLast() 等导航方法。

于 2014-05-10T20:08:31.340 回答