2013-12-04 2 views
0

1) Может кто-нибудь объяснить или указать мне на учебник, который объяснит и даст примеры того, как TreeSet выполняет свою задачу? Более конкретно, каков выписанный код класса, который позволяет ему функционировать?Как явная функция Java TreeSet работает?

2) Также может ли TS использоваться для сортировки несортированного массива строк?

Большое спасибо!

EDIT: Для (2), я пытаюсь инициализировать строку String [] names = strings {junk names ...} и сделать их лексикографически отсортированными. Является ли TS правильным вызовом? Или есть другое направление, которое я должен посмотреть.

+3

Исходный код является общедоступным. «TreeSet» реализован с помощью «TreeMap», который реализован как дерево Red Black. –

ответ

1

Короткий TreeSet = Tree(for ordering) + Set(for avoiding duplicates). В java Comparator/Comparable используется для сравнения двух объектов в деревьях

Для получения дополнительной информации вам необходимо посмотреть исходный код TreeSet. Вот ссылка Source Code

+0

Пожалуйста, найдите более новую версию. –

0

TreeSet опирается на TreeMap, который представляет собой красно-черное дерево - http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/7-b147/java/util/TreeMap.java#TreeMap

В TreeSet объекте, хранящемся в отсортированном образом, с использованием метода CompareTo(). Итак, вы можете использовать это для сортировки массива.

+0

Я ценю ссылку, это именно то, что я ищу. Я немного смущен тем, что означает ваше второе утверждение, не могли бы вы уточнить? Я только начал преподавать себя java, вы говорите, что метод compareTo() может быть реализован в функции TS или вызван заранее? – user2904549

+0

Я просто хочу сообщить, что TreeSet использует compatTo() для сортировки массива, не путайте его. И да, вы можете переопределить этот метод, чтобы дать ur для реализации. проверьте это для получения более подробной информации http://docs.oracle.com/javase/7/docs/api/java/lang/Comparable.html –

Смежные вопросы