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("Германия");
   }
}

Введите свой email адрес для того, чтобы подписаться на мой блог:


knopkisoc

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

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>