Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Java

Số cách duyệt TreeSet trong Java

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áchHướngJava versionGhi chú
IteratorTăng dần1.2Có remove()
for-eachTăng dần5Đơn giản, read-only
descendingIterator()Giảm dần1.6NavigableSet feature
stream().forEach()Tăng dần8Functional, có thể parallel
forEach(Consumer)Tăng dần8Internal iteration

Lưu ý: TreeSet không hỗ trợ ListIterator (chỉ List mới có).