Java中的TreeSet headSet()方法及示例
TreeSet是Java中SortedSet接口最重要的实现之一,它使用树进行存储。集合的元素排序是通过使用它们的自然排序来维护的,无论是否提供了显式比较器。如果要正确实现Set接口,则必须与equals方法一致。
TreeSet类中的headSet()方法位于Java.util包内,用作树集的限制设置器,在方法参数中定义一个限制,返回排序方式下的元素集合,不包括元素本身。
语法:
head_set = (TreeSet)tree_set.headSet(Object element)
Java
参数: 参数 element 是树集的类型,并且是头部点,即树允许返回值的限制,不包括 element 本身。
返回值: 该方法以排序方式返回一个比参数中提到的元素严格小的值的部分。
现在我们将讨论在TreeSet类中实现headSet()方法时不同的场景:
- 情况1: 在排序好的TreeSet中
- 情况2-A: 在未排序好的TreeSet中
- 情况2-B: 在未排序的TreeSet中但元素是字符串类型的情况下
示例1:
// Java program to Illustrate headSet() method
// of TreeSet class In a sorted TreeSet
// Importing required classes
import java.io.*;
import java.util.Iterator;
import java.util.TreeSet;
// Main class
public class GFG {
// Main driver method
public static void main(String[] args)
{
// Creating an empty TreeSet by
// declaring object of TreeSet class
TreeSet<Integer> tree_set = new TreeSet<Integer>();
// Adding the elements
// using add() method
tree_set.add(1);
tree_set.add(2);
tree_set.add(3);
tree_set.add(4);
tree_set.add(5);
tree_set.add(10);
tree_set.add(20);
tree_set.add(30);
tree_set.add(40);
tree_set.add(50);
// Creating the headSet tree
TreeSet<Integer> head_set = new TreeSet<Integer>();
// Limiting the values till 5
head_set = (TreeSet<Integer>)tree_set.headSet(30);
// Creating an Iterator
Iterator iterate;
iterate = head_set.iterator();
// Displaying the tree set data
System.out.println(
"The resultant values till head set: ");
// Holds true till there is single element
// remaining in the object
while (iterate.hasNext()) {
// Iterating through the headSet
// using next() method
System.out.println(iterate.next() + " ");
}
}
}
Java
输出结果:
The resultant values till head set:
1
2
3
4
5
10
20
Java
示例2-A:
// Java程序演示TreeSet类的headSet()方法
// 在未排序的TreeSet中
// 导入所需类
import java.io.*;
import java.util.Iterator;
import java.util.TreeSet;
// 主类
public class GFG {
// 主驱动程序
public static void main(String[] args)
{
// 创建一个空的TreeSet
TreeSet tree_set = new TreeSet();
// 使用add()方法添加元素
tree_set.add(9);
tree_set.add(2);
tree_set.add(100);
tree_set.add(40);
tree_set.add(50);
tree_set.add(10);
tree_set.add(20);
tree_set.add(30);
tree_set.add(15);
tree_set.add(16);
// 创建headSet树
TreeSet head_set = new TreeSet();
// 将值限制在30以下
head_set = (TreeSet)tree_set.headSet(30);
// 创建一个迭代器
Iterator iterate;
iterate = head_set.iterator();
// 显示树集数据
System.out.println("The resultant values till head set: ");
// 遍历headSet
while (iterate.hasNext()) {
// 打印元素
System.out.println(iterate.next() + " ");
}
}
}
Java
输出结果:
The resultant values till head set:
2
9
10
15
16
20
Java
例子2-B:
// Java程序演示TreeSet类的headSet()方法
// 在未排序的TreeSet中,但元素为String类型
// 导入所需类
import java.io.*;
import java.util.Iterator;
import java.util.TreeSet;
// 主类
public class GFG {
// 主驱动程序
public static void main(String[] args)
{
// 创建一个空的TreeSet
TreeSet tree_set = new TreeSet();
// 使用add()方法添加元素
tree_set.add("Welcome");
tree_set.add("To");
tree_set.add("Geek");
tree_set.add("4");
tree_set.add("Geeks");
tree_set.add("TreeSet");
// 创建headSet树
TreeSet head_set = new TreeSet();
// 将值限制在"To"以下
head_set = (TreeSet)tree_set.headSet("To");
// 创建一个迭代器
Iterator iterate;
iterate = head_set.iterator();
// 显示树集数据
System.out.println("The resultant values till head set: ");
// 遍历headSet
while (iterate.hasNext()) {
// 使用next()方法打印元素
System.out.println(iterate.next() + " ");
}
}
}
Java
输出结果:
The resultant values till head set:
4
Geek
Geeks
Java