A TreeSet sorts on insertion using natural order or a comparator, and offers first, last and navigation methods a HashSet cannot.
NavigableSet<String> set = new TreeSet<>(List.of("kafka", "java", "sql", "java"));
System.out.println(set);
System.out.println("first = " + set.first() + ", last = " + set.last());
System.out.println("descending = " + set.descendingSet());
var caseInsensitive = new TreeSet<String>(String.CASE_INSENSITIVE_ORDER);
caseInsensitive.addAll(List.of("Java", "JAVA", "java"));
System.out.println("case-insensitive set size = " + caseInsensitive.size());
[java, kafka, sql]
first = java, last = sql
descending = [sql, kafka, java]
case-insensitive set size = 1
Run this yourself in the Online Java Compiler, spin up a live REST API in the API Sandbox, or practise with Java interview questions.
Published 2026-07-30