• Сервис онлайн-записи на собственном Telegram-боте
    Тот, кто работает в сфере услуг, знает — без ведения записи клиентов никуда. Мало того, что нужно видеть свое расписание, но и напоминать клиентам о визитах тоже. Нашли самый бюджетный и оптимальный вариант: сервис VisitTime.
    Для новых пользователей первый месяц бесплатно.
    Чат-бот для мастеров и специалистов, который упрощает ведение записей:
    Сам записывает клиентов и напоминает им о визите;
    Персонализирует скидки, чаевые, кэшбэк и предоплаты;
    Увеличивает доходимость и помогает больше зарабатывать;
    Начать пользоваться сервисом
  • Как продвинуть сайт на первые места?
    Вы создали или только планируете создать свой сайт, но не знаете, как продвигать? Продвижение сайта – это не просто процесс, а целый комплекс мероприятий, направленных на увеличение его посещаемости и повышение его позиций в поисковых системах.
    Ускорение продвижения
    Если вам трудно попасть на первые места в поиске самостоятельно, попробуйте технологию Буст, она ускоряет продвижение в десятки раз, а первые результаты появляются уже в течение первых 7 дней. Если ни один запрос у вас не продвинется в Топ10 за месяц, то в SeoHammer за бустер вернут деньги.
    Начать продвижение сайта

Java Урок 59: КОЛЛЕКЦИИ, TreeSet<>

Обобщенный класс TreeSet представляет структуру данных в виде дерева, в котором все объекты хранятся в отсортированном виде по возрастанию. TreeSet является наследником класса AbstractSet и реализует интерфейс NavigableSet.

Скачать исходники для статьи можно ниже

TreeSet поддерживает все стандартные классы для вставки и удаления элементов:

import java.util.TreeSet;

public class DemoShipment {
   public static void main(String[] args) {
      TreeSet<String> states = new TreeSet<String>();

      // добавим в список ряд элементов
      states.add("Германия");
      states.add("Франция");
      states.add("Италия");
      states.add("Великобритания");
      System.out.println("В списке " + states.size() + " элементов");
      states.remove("Германия");
      for (String state : states) {
         System.out.println(state);
      }
   }
}

Вывод программы:
В списке 4 элементов
Великобритания
Италия
Франция

И поскольку при вставке объекты сразу же сортируются по возрастанию, то при выводе в цикле for мы получим отсортированный набор:

Так как TreeSet реализует интерфейс NavigableSet, а через него и SortedSet, то мы можем применить к структуре дерева различные методы:

import java.util.*;

public class DemoShipment {
   public static void main(String[] args) {

      TreeSet<String> states = new TreeSet<String>();
      states.add("Германия");
      states.add("Франция");
      states.add("Италия");
      states.add("Великобритания");
      System.out.println(states.first()); // получим первый - самый
      // меньший элемент
      System.out.println(states.last()); // получим последний - самый
      // больший элемент

      // получим поднабор от одного элемента до другого
      SortedSet<String> set = states.subSet("Германия", "Франция");
      System.out.println(set);

      // элемент из набора, который больше текущего
      String greater = states.higher("Германия");

      // элемент из набора, который меньше текущего
      String lower = states.lower("Германия");

      // возвращаем набор в обратном порядке
      NavigableSet<String> navSet = states.descendingSet();

      // возвращаем набор в котором все элементы меньше текущего
      SortedSet<String> setLower = states.headSet("Германия");

      // возвращаем набор в котором все элементы больше текущего
      SortedSet<String> setGreater = states.tailSet("Германия");
   }
}

Добавить комментарий