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

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

Java中的TreeSet是一种数据结构,它继承了SortedSet接口并实现了NavigableSet接口。TreeSet中的元素具有自然顺序,或者根据用户指定的Comparator进行排序。TreeSet中的每个元素都是唯一的,不允许存储null元素。

在TreeSet中,headSet()方法返回一个由小于指定元素的元素组成的集合。

方法定义

public SortedSet<E> headSet(E toElement);
public NavigableSet<E> headSet(E toElement, boolean inclusive);

headSet()方法接收一个参数toElement,表示截取的上界。可选的参数inclusive表示是否包含toElement本身。

方法headSet(E toElement)返回一个SortedSet,而方法headSet(E toElement, boolean inclusive)则返回一个NavigableSet。

示例

创建一个包含几个元素的TreeSet,截取小于某个元素的子集并进行遍历。

import java.util.TreeSet;
import java.util.SortedSet;

public class TreeSetDemo {
    public static void main(String[] args) {
        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);

        // 遍历集合
        for(Integer i : headSet) {
            System.out.println(i);
        }
    }
}

程序输出:

1
2

在以上示例中,我们通过headSet()方法获取小于3的元素,并将结果存储在SortedSet中。SortedSet仅提供了一些基本的操作,如添加、删除、大小比较等。我们在这里遍历这个集合并输出其中的元素。

我们还可以使用inclusive参数包含指定的元素:

// 获取小于等于3的元素
NavigableSet<Integer> headSet = set.headSet(3, true);

在这里,headSet()方法返回一个NavigableSet,并将包含元素3。

特别注意

由于TreeSet是按照元素升序排列的,因此类中必须要实现Comparable接口或传入自定义的Comparator来指定元素排序。

这也是为什么TreeSet不允许存储null元素,因为如果要比较的对象为null时会报NullPointerException异常,所以必须提供非null元素以便进行比较。

结论

headSet()方法是Java中TreeSet类中的一个实用方法,它可以返回小于指定元素的元素的集合。在使用该方法时,应注意指定的元素必须是在TreeSet中可以进行自然顺序或者自定义排序的类型,并且必须是非null的。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程