logo

NavigableSet в Java

На Java NavigableSet є підтипом Відсортований набір інтерфейс. Це дозволяє нам виконувати різні операції, такі як отримання найближчих збігів для даного елемента в порядку спадання ітерації та інші. Він надає методи навігації між елементами в наборі.

Наприклад Інтерфейс NavigableSet дозволяє нам переміщатися між набором як у порядку зростання, так і в порядку спадання, на відміну від SortedSet, який підтримує лише порядок зростання. Класи, які реалізують інтерфейс NavigableSet, є TreeSet  і  ConcurrentSkipListSet

  • NavigableSet розширює SortedSet і, таким чином, надає такі методи, як first() last() headSet() tailSet() тощо.
  • Це дозволяє вам переміщатися в обох напрямках за зростанням і спаданням
  • Найпоширенішою реалізацією NavigableSet є TreeSet.

приклад: Цей приклад демонструє створення NavigableSet за допомогою TreeSet і додавання до нього елементів, які автоматично сортують їх у порядку зростання.



Java
// Java program to demonstrates  // the working of NavigableSet  import java.util.*; public class Geeks {  public static void main(String[] args) {  NavigableSet<Integer> ns = new TreeSet<>();  // Add elements to the set  ns.add(10);  ns.add(20);  ns.add(30);  ns.add(40);  ns.add(50);  System.out.println('Navigable Set: ' + ns);  } } 

Вихід
Navigable Set: [10 20 30 40 50] 


Наведена нижче діаграма демонструє структуру успадкування в рамках колекції Java, пов’язану з наборами.

NavigableSet-in-Java-with-Examples' title=

TreeSet — це клас, який реалізує NavigableSet який, у свою чергу, розширює SortedSet, який розширює встановити .

Оголошення NavigableSet

У Java оголошення NavigableSet можна оголосити так:

NavigableSetsetName;

Примітка: ' Type' — це тип елемента в наборі (наприклад, цілочисельний рядок тощо), а setName — ім’я змінної.

Створення об’єктів NavigableSet

Ми не можемо створити NavigableSet безпосередньо, оскільки це інтерфейс. Замість цього ми використовуємо клас like TreeSet що його реалізує. За допомогою дженериків ми можемо визначити тип об’єктів, які буде зберігати набір. Цей типобезпечний набір можна визначити як:

NavigableSetset = новий TreeSet();

приклад: Цей приклад демонструє, як використовувати різні методи NavigableSet, такі як descedingSet() tailSet() lower() pollFirst() і pollLast() для маніпулювання та навігації впорядкованому наборі як у звичайному, так і у зворотному порядку.

локальна дата java
Java
// Java Program to demostrates the  // working of various methods of NavigableSet import java.util.NavigableSet; import java.util.TreeSet; public class Geeks {  public static void main(String[] args)  {  NavigableSet<Integer> ns = new TreeSet<>();  ns.add(0);  ns.add(1);  ns.add(2);  ns.add(3);  ns.add(4);  ns.add(5);  ns.add(6);  // Get a reverse view of the navigable set  NavigableSet<Integer> revNs = ns.descendingSet();  // Print the normal and reverse views  System.out.println('Normal order: ' + ns);  System.out.println('Reverse order: ' + revNs);  NavigableSet<Integer> t = ns.tailSet(3 true);  System.out.println('3 or more: ' + t);  System.out.println('lower(3): ' + ns.lower(3));  System.out.println('floor(3): ' + ns.floor(3));  System.out.println('higher(3): ' + ns.higher(3));  System.out.println('ceiling(3): ' + ns.ceiling(3));  System.out.println('pollFirst(): ' + ns.pollFirst());  System.out.println('Navigable Set: ' + ns);  System.out.println('pollLast(): ' + ns.pollLast());  System.out.println('Navigable Set: ' + ns);  System.out.println('pollFirst(): ' + ns.pollFirst());  System.out.println('Navigable Set: ' + ns);  System.out.println('pollFirst(): ' + ns.pollFirst());  System.out.println('Navigable Set: ' + ns);  System.out.println('pollFirst(): ' + ns.pollFirst());  System.out.println('Navigable Set: ' + ns);  System.out.println('pollFirst(): ' + ns.pollFirst());  System.out.println('pollLast(): ' + ns.pollLast());  } } 

Вихід:

Вихід' loading='lazy' title=

Виконання різноманітних операцій над NavigableSet

1. Додавання елементів: Ми можемо використовувати додати() метод для вставки елементів у NavigableSet. Елементи зберігаються в відсортованому порядку, дублікати не допускаються, і NavigableSet також не приймає нульові значення.

приклад: Цей приклад демонструє додавання елементів до NavigableSet за допомогою add(), де дублікати ігноруються, а елементи сортуються за зростанням.

Java
// Java Program to demonstrates the working of add() import java.util.*; import java.io.*; class Geeks {  public static void main(String[] args)  {  NavigableSet<String> ts = new TreeSet<String>();  // Elements are added using add() method  ts.add('A');  ts.add('B');  ts.add('C');  ts.add('A');  System.out.println('NavigableSet: ' + ts);  } } 

Вихід
NavigableSet: [A B C] 


2. Доступ до елементів: Після додавання елементів, якщо ми хочемо отримати доступ до елементів, ми можемо використовувати вбудовані методи, такі як містить() перший() останній() тощо

приклад: Цей приклад демонструє додавання елементів до NavigableSet, перевірку існування елемента та отримання першого й останнього елементів.

Java
// Java program to demonstrates the  // working of contains() first() and last() method import java.util.*; import java.io.*; class Geeks {  public static void main(String[] args)  {  NavigableSet<String> ts = new TreeSet<String>();  // Elements are added using add() method  ts.add('A');  ts.add('B');  ts.add('C');  ts.add('A');  System.out.println('NavigableSet: ' + ts);  String s = 'D';  // Check if the above string exists in  // the NavigableSet or not  System.out.println('D exists in the NavigableSet?: '  + ts.contains(s));  // Print the first element in  // the NavigableSet  System.out.println('First Element of NavigableSet: '   + ts.first());  // Print the last element in  // the NavigableSet  System.out.println('Last Element of NavigableSet: '   + ts.last());  } } 

Вихід
NavigableSet: [A B C] D exists in the NavigableSet?: false First Element of NavigableSet: A Last Element of NavigableSet: C 


3. Видалення елементів: Значення можна видалити з NavigableSet за допомогою видалити() pollFirst() pollLast() .

приклад: Цей приклад демонструє видалення елементів із NavigableSet.

Java
// Java Program to demonstrates the working of remove() // pollFirst() and pollLast() method import java.io.*; import java.util.*; class Geeks {  public static void main(String[] args)  {  NavigableSet<String> ts = new TreeSet<String>();  // Elements are added using add() method  ts.add('A');  ts.add('B');  ts.add('C');  ts.add('B');  ts.add('D');  ts.add('E');  System.out.println('NavigableSet: ' + ts);  // Removing the element b  ts.remove('B');  System.out.println('After removing element ' + ts);  // Remove the First element of TreeSet  ts.pollFirst();  System.out.println(  'After the removal of First Element ' + ts);  // Remove the Last element of TreeSet  ts.pollLast();  System.out.println(  'After the removal of Last Element ' + ts);  } } 

Вихід
NavigableSet: [A B C D E] After removing element [A C D E] After the removal of First Element [C D E] After the removal of Last Element [C D] 


4. Повторювані елементи: Існують різні способи проходження NavigableSet. Найвідомішим є використання  покращений цикл for.

приклад: Цей приклад демонструє додавання елементів до NavigableSet і проходження через нього в порядку зростання.

Java
// Java Program to iterate through NavigableSet import java.util.*; import java.io.*; class Geeks {  public static void main(String[] args)  {  NavigableSet<String> ts = new TreeSet<String>();  // Elements are added using add() method  ts.add('C');  ts.add('D');  ts.add('E');  ts.add('A');  ts.add('B');  ts.add('Z');  // Iterating though the NavigableSet  for (String i : ts)  System.out.print(i + ' ');  } } 

Вихід
A B C D E Z 

методи

Нижче наведено методи, присутні в інтерфейсі NavigableSet. 

налаштування шляху python

методи

опис

 стеля (E e) Повертає найменший елемент у цьому наборі, більший або рівний заданому елементу, або null, якщо такого елемента немає.
descendingIterator() Повертає ітератор для елементів цього набору в порядку спадання.
descendingSet() Повертає вигляд у зворотному порядку елементів, що містяться в цьому наборі.
поверх (E e) Повертає найбільший елемент у цьому наборі, менший або рівний заданому елементу, або нуль, якщо такого елемента немає.
Гарнітура (E toElement) Повертає вигляд частини цього набору, елементи якої строго менші за toElement.
HeadSet (логічне значення E toElement включно) Повертає перегляд частини цього набору, елементи якої менші (або дорівнюють, якщо значення inclusive має значення true) toElement.
вище (E e) Повертає найменший елемент у цьому наборі, строго більший за даний елемент, або null, якщо такого елемента немає.
ітератор() Повертає ітератор для елементів цього набору в порядку зростання.
нижній (E e) Повертає найбільший елемент у цьому наборі, строго менший за даний елемент або null, якщо такого елемента немає.
pollFirst() Отримує та видаляє перший (найнижчий) елемент або повертає null, якщо цей набір порожній.
pollLast() Отримує та видаляє останній (найвищий) елемент або повертає null, якщо цей набір порожній.

subSet(E fromElement boolean

fromInclusive E toElement boolean toInclusive)

Повертає вигляд частини цього набору, елементи якого варіюються від fromElement до toElement.
subSet(E fromElement E toElement) Повертає перегляд частини цього набору, елементи якого варіюються від fromElement inclusive до toElement exclusive.
tailSet(E fromElement)Повертає подання частини цього набору, елементи якої більше або дорівнюють fromElement.
tailSet(E fromElement boolean inclusive)Повертає подання частини цього набору, елементи якої більші (або дорівнюють, якщо значення inclusive має значення true) fromElement.

                                                                                                                                              
Методи, успадковані від інтерфейсу java.util.SortedSet

метод

опис

компаратор()  Цей метод повертає компаратор, який використовується для впорядкування елементів у цьому наборі, або null, якщо цей набір використовує природний порядок своїх елементів.
перший() Цей метод повертає перший (найнижчий) елемент у цьому наборі.
останній() Цей метод повертає останній (найвищий) елемент у наборі.
spliterator()Створює Spliterator над елементами цього відсортованого набору.

Методи, успадковані від інтерфейсу java.util.Set

метод

опис

додати (елемент) Цей метод використовується для додавання певного елемента до набору. Функція додає елемент, лише якщо вказаний елемент ще не присутній у наборі, інакше функція повертає False, якщо елемент уже присутній у наборі.
addAll(колекція)  Цей метод використовується для додавання всіх елементів зі згаданої колекції до існуючого набору. Елементи додаються випадковим чином без дотримання певного порядку.
очистити()   Цей метод використовується для видалення всіх елементів із набору, але не видалення набору. Посилання на набір все ще існує.
містить (елемент) Цей метод використовується для перевірки наявності певного елемента в наборі чи ні.
міститьВсе(колекція) 

Цей метод використовується для перевірки того, чи містить набір усі елементи, присутні в даній колекції, чи ні.

Цей метод повертає true, якщо набір містить усі елементи, і повертає false, якщо будь-який з елементів відсутній.

дорівнює() Порівнює вказаний об’єкт із цим набором на рівність.
hashCode()  Цей метод використовується для отримання значення hashCode для цього екземпляра Set. Він повертає ціле значення, яке є значенням hashCode для цього екземпляра Set.
isEmpty() Цей метод використовується, щоб перевірити, чи є NavigableSet порожнім чи ні.
видалити (елемент) Цей метод використовується для видалення заданого елемента з набору. Цей метод повертає True, якщо вказаний елемент присутній у Set, інакше він повертає False.
removeAll(колекція) Цей метод використовується для видалення всіх елементів із колекції, які присутні в наборі. Цей метод повертає true, якщо цей набір змінився в результаті виклику.
retainAll(колекція) Цей метод використовується для збереження всіх елементів із набору, які згадуються в даній колекції. Цей метод повертає true, якщо цей набір змінився в результаті виклику.
розмір() Цей метод використовується для визначення розміру набору. Це повертає ціле число, яке означає кількість елементів.
toArray() Цей метод використовується для формування масиву з тих самих елементів, що й у Set.
 toArray(T[] a)Повертає масив, що містить усі елементи цього набору; тип середовища виконання поверненого масиву – це тип зазначеного масиву.

Методи, оголошені в інтерфейсі java.util.Collection

методопис
parallelStream()Повертає, можливо, паралельний потік із цією колекцією як джерелом.
removeIf(Предикатфільтр)Видаляє всі елементи цієї колекції, які задовольняють заданий предикат.
потік()Повертає послідовний потік із цією колекцією як джерелом.
toArray?(IntFunctionгенератор)Повертає масив, що містить усі елементи цієї колекції, використовуючи надану функцію генератора для розподілу повернутого масиву.

Методи, оголошені в інтерфейсі java.lang.Iterable

методопис
forEach(Споживачдія) Виконує задану дію для кожного елемента Iterable, доки всі елементи не будуть оброблені або дія не викличе виняткову ситуацію.