Иллюстрированный самоучитель по Java
Упорядоченные
множества
Класс
TreeSet
полностью реализует интерфейс
sortedset
и итератор типа
iterator
. Класс
TreeSet
реализован
как бинарное дерево поиска, значит, его элементы хранятся в упорядоченном виде.
Это значительно ускоряет поиск нужного элемента.
Порядок задается либо естественным
следованием элементов, либо объектом, реализующим интерфейс сравнения
Comparator
.
Этот класс удобен при поиске элемента
во множестве, например, для проверки, обладает ли какой-либо элемент свойством,
определяющим множество.
В классе
TreeSet
четыре конструктора:
TreeSet
() — создает пустой объект с естественным порядком элементов;
TreeSet (Comparator с)
— создает пустой объект, в
котором порядок задается объектом сравнения с;
TreeSet (Collection coll)
— создает объект, содержащий все элементы коллекции
coll
,
с естественным порядком ее элементов;
TreeSet (SortedMap sf)
— создает объект, содержащий все элементы отображения
sf
,
в том же порядке.
В листинге 6.7 показано, как можно
хранить комплексные числа в упорядоченном виде. Порядок задается объектом класса
ComplexCompare
, определенного в листинге 6.6.
Листинг
6.7.
Хранение комплексных чисел в упорядоченном виде
TreeSet
ts = new TreeSet (new ComptexCompare());
ts.add(new Complex(1.2,
3.4));
ts. add (new Complex
(-1.25, 33.4»;
ts.add(new Complex(1.23,
-3.45));
ts.add(new Complex(16.2,
23.4));
Iterator it =
ts.iterator();
while(it.hasNext())
, ((Complex)it.next()).pr();