TreeSet – Sorted Set
TreeSet implements NavigableSet, lưu trữ phần tử **đã sắp xếp** (theo natural ordering hoặc Comparator). Không cho trùng lặp.
Cách 1: Iterator (forward only)
import java.util.*;
public class TreeSetIteratorDemo {
public static void main(String[] args) {
Set set = new TreeSet<>(Arrays.asList("Ramesh", "Adithya", "Jai", "Vamsi", "Chaitanya"));
Iterator it = set.iterator();
while (it.hasNext()) {
System.out.println(it.next());
}
}
}
Kết quả (alphabet): Adithya, Chaitanya, Jai, Ramesh, Vamsi
Cách 2: Enhanced for-loop (for-each)
import java.util.*;
public class TreeSetForEachDemo {
public static void main(String[] args) {
Set set = new TreeSet<>(Arrays.asList("India", "Australia", "West Indies", "South Africa", "England"));
for (String s : set) {
System.out.println(s);
}
}
}
Kết quả: Australia, England, India, South Africa, West Indies
Cách 3: Descending Iterator (Java 1.6+)
Iterator desc = set.descendingIterator();
while (desc.hasNext()) System.out.println(desc.next()); // ngược thứ tự
Cách 4: Stream API (Java 8+)
set.stream().forEach(System.out::println);
// hoặc parallelStream, filter, map...
Cách 5: forEach(Consumer) (Java 8+)
set.forEach(System.out::println);
Bảng tóm tắt
| Cách | Hướng | Java version | Ghi chú |
|---|---|---|---|
| Iterator | Tăng dần | 1.2 | Có remove() |
| for-each | Tăng dần | 5 | Đơn giản, read-only |
| descendingIterator() | Giảm dần | 1.6 | NavigableSet feature |
| stream().forEach() | Tăng dần | 8 | Functional, có thể parallel |
| forEach(Consumer) | Tăng dần | 8 | Internal iteration |
Lưu ý: TreeSet không hỗ trợ ListIterator (chỉ List mới có).