Разница между navigableSet, SortedSet и TreeSet в Java?
TreeSet
помещает элемент в natural ordering
или предоставленный comparator
.
A sortedSet
также сохраняет элемент в естественном порядке
но в чем разница между ними и navigableSet?
где navigableSets
полезно? некоторый пример, чтобы показать его использование было бы хорошо для новичков.
Ответы
Ответ 1
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.
Ответ 2
Надеюсь, вы найдете полезную выдержку из Java docs (см. ссылку на более подробную информацию):
Методы ниже, пол, потолок и вышевозвратные элементы соответственно меньше, меньше или равны, больше чем или равно, и больше, чем данный элемент.
Ответ 3
Я чувствую this
- это хорошо продемонстрированная ссылка с приличным объяснением.
Ответ 4
NavigableSet добавляет методы навигации, такие как descendingIterator() и descendingSet(), top(), floor(), upper(), lower(), headSet(), tailSet(), subSet(), pollFirst() и pollLast ().
Ответ 5
TreeSet реализует NavigableSet и (интерфейс) NavigableSet extends SortedSet