web-dev-qa-db-ja.com

JavaでのNavigableSet、SortedSet、およびTreeSetの違い

  • TreeSetは、要素を自然順序付けまたは指定されたコンパレータで配置します。
  • SortedSetは、要素を自然順序でも保持します

しかし、それらとNavigableSet?の違いは何ですか
NavigableSetsはどこで役に立ちますか?

その使用法を示すいくつかの例は、初心者にはいいでしょう。

20
eagertoLearn

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で使用できます。

21
josh

Java docs からの以下の抜粋が役立つと思います(詳細へのリンクを参照):

メソッドlowerfloor ceiling、およびhigherは、それぞれ、より小さい、以下、より大きい、またはより大きい、およびより大きい要素を返します特定の要素。

3
ppawel

this は、きちんと説明された、十分に実証されたリファレンスです。

2
MissingNumber

TreeSetはNavigableSetを実装し、(インターフェース)NavigableSetはSortedSetを拡張します

1
Asher A

NavigableSetは、descendingIterator()およびdescendingSet()、ceiling()、floor()、higher()、lower()、headSet()、tailSet()、subSet()、pollFirst()、pollLast()などのナビゲーションメソッドを追加します。

1
probalm