Java TreeSet
底层是红黑树实现
将元素插入TreeSet
add() - 将指定的元素插入集合
addAll() - 将指定集合的所有元素插入集合
import java.util.TreeSet;
class Main {
public static void main(String[] args) {
TreeSet<Integer> evenNumbers = new TreeSet<>();
// 使用 the add() 方法
evenNumbers.add(2);
evenNumbers.add(4);
evenNumbers.add(6);
System.out.println("TreeSet: " + evenNumbers);
TreeSet<Integer> numbers = new TreeSet<>();
numbers.add(1);
// 使用 the addAll() 方法
numbers.addAll(evenNumbers);
System.out.println("新的TreeSet: " + numbers);
}
}
输出结果
TreeSet: [2, 4, 6]
新的TreeSet: [1, 2, 4, 6]
访问TreeSet元素
要访问树集的元素,我们可以使用iterator()方法。为了使用这种方法,我们必须导入java.util.Iterator包。
import java.util.TreeSet;
import java.util.Iterator;
class Main {
public static void main(String[] args) {
TreeSet<Integer> numbers = new TreeSet<>();
numbers.add(2);
numbers.add(5);
numbers.add(6);
System.out.println("TreeSet: " + numbers);
// 调用 iterator() 方法
Iterator<Integer> iterate = numbers.iterator();
System.out.print("TreeSet使用迭代器: ");
//访问元素
while(iterate.hasNext()) {
System.out.print(iterate.next());
System.out.print(", ");
}
}
}
输出结果
TreeSet: [2, 5, 6]
TreeSet使用迭代器: 2, 5, 6,
导航方法
first()和last()方法
first() - 返回集合的第一个元素
last() - 返回集合的最后一个元素
Higher(element) - 返回大于指定元素(element)的最小元素。
lower(element) - 返回小于指定元素(element)的最大元素。
ceiling(element) - 返回大于指定元素(element)的那些元素中的最小元素。如果传递的元素(element)存在于树集中,则返回作为参数传递的元素(element)。
floor(element) - 返回小于指定元素(element)的元素中最大的元素。如果传递的元素(element)存在于树集中,则返回作为参数传递的元素(element)。
import java.util.TreeSet;
class Main {
public static void main(String[] args) {
TreeSet<Integer> numbers = new TreeSet<>();
numbers.add(2);
numbers.add(5);
numbers.add(4);
numbers.add(6);
System.out.println("TreeSet: " + numbers);
// 使用 higher()
System.out.println("使用 higher: " + numbers.higher(4));
// 使用 lower()
System.out.println("使用 lower: " + numbers.lower(4));
// 使用 ceiling()
System.out.println("使用 ceiling: " + numbers.ceiling(4));
// 使用 floor()
System.out.println("使用 floor: " + numbers.floor(3));
}
}
输出结果
TreeSet: [2, 4, 5, 6]
使用 higher: 5
使用 lower: 2
使用 ceiling: 4
使用 floor: 2