Java中的TreeSet headSet()方法及示例

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

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册