📜  Java TreeSet 特殊方法(1)

📅  最后修改于: 2023-12-03 15:15:58.098000             🧑  作者: Mango

Java TreeSet 特殊方法

Java中的TreeSet是一个基于红黑树实现的集合,它可以保证元素有序且无重复。除了一些常规的方法,TreeSet还提供了几个特殊的方法,本文将对这些特殊方法进行介绍。

subSet

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

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

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

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

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的元素进行查询和排除。