📅  最后修改于: 2023-12-03 15:15:58.098000             🧑  作者: Mango
Java中的TreeSet是一个基于红黑树实现的集合,它可以保证元素有序且无重复。除了一些常规的方法,TreeSet还提供了几个特殊的方法,本文将对这些特殊方法进行介绍。
subSet
方法用于返回给定范围内的元素子集合。其签名如下:
public SortedSet<E> subSet(E fromElement, E toElement)
其中,fromElement
为起始元素,toElement
为结束元素。注意,查询结果包含起始元素但不包含结束元素。如果开始元素或结束元素未被包含在TreeSet中,将会抛出IllegalArgumentException
异常。如果起始元素在结束元素之后,也将抛出IllegalArgumentException
异常。
示例代码:
TreeSet<Integer> set = new TreeSet<>();
set.add(1);
set.add(2);
set.add(3);
set.add(4);
set.add(5);
// 获取范围在[2,4)之间的子集
SortedSet<Integer> subSet = set.subSet(2, 4);
System.out.println(subSet); // 输出[2, 3]
headSet
方法用于返回小于给定元素的元素子集。其签名如下:
public SortedSet<E> headSet(E toElement)
其中,toElement
为给定元素。查询结果包含所有小于给定元素的元素。如果给定元素未被包含在TreeSet中,将返回小于给定元素的所有元素。如果TreeSet为空,则返回一个空集合。
示例代码:
TreeSet<Integer> set = new TreeSet<>();
set.add(1);
set.add(2);
set.add(3);
set.add(4);
set.add(5);
// 获取小于3的元素子集
SortedSet<Integer> headSet = set.headSet(3);
System.out.println(headSet); // 输出[1, 2]
tailSet
方法用于返回大于等于给定元素的元素子集。其签名如下:
public SortedSet<E> tailSet(E fromElement)
其中,fromElement
为给定元素。查询结果包含所有大于等于给定元素的元素。如果给定元素未被包含在TreeSet中,将返回大于等于给定元素的所有元素。如果TreeSet为空,则返回一个空集合。
示例代码:
TreeSet<Integer> set = new TreeSet<>();
set.add(1);
set.add(2);
set.add(3);
set.add(4);
set.add(5);
// 获取大于等于3的元素子集
SortedSet<Integer> tailSet = set.tailSet(3);
System.out.println(tailSet); // 输出[3, 4, 5]
first
方法用于返回TreeSet中的第一个元素。如果TreeSet为空,将抛出NoSuchElementException
异常。
示例代码:
TreeSet<Integer> set = new TreeSet<>();
set.add(1);
set.add(2);
set.add(3);
// 获取第一个元素
int first = set.first();
System.out.println(first); // 输出1
last
方法用于返回TreeSet中的最后一个元素。如果TreeSet为空,将抛出NoSuchElementException
异常。
示例代码:
TreeSet<Integer> set = new TreeSet<>();
set.add(1);
set.add(2);
set.add(3);
// 获取最后一个元素
int last = set.last();
System.out.println(last); // 输出3
以上就是Java TreeSet特殊方法的介绍,这些方法可以帮助我们更方便地对TreeSet的元素进行查询和排除。