📜  Java中的 TreeSet subSet() 方法(1)

📅  最后修改于: 2023-12-03 14:42:53.074000             🧑  作者: Mango

Java中的 TreeSet subSet() 方法

在Java中,TreeSet是基于TreeMap实现的,它实现了SortedSet接口,可以对元素进行排序。TreeSet中的元素是按照排序顺序进行存储的,并且不能包含重复的元素。

TreeSet中的subSet()方法可以返回一个子集,该子集是从指定的起始元素(包括)到指定的结束元素(不包括)的元素。下面是该方法的使用方式:

public SortedSet<E> subSet(E fromElement, E toElement)

在上面的代码中,fromElement参数指定子集的起始元素(包括),toElement参数指定子集的结束元素(不包括)。

subSet()方法返回一个SortedSet接口的子集实例,该实例包含了范围从fromElement到toElement的元素。这个子集是由TreeSet实例返回的,所以它具有TreeSet的所有特征和限制。

下面是一些关于TreeSet subSet()方法的使用注意事项:

  • subSet()方法返回的子集是一个视图,对其的修改会反映到原TreeSet中。
  • 如果试图添加不在子集中的元素,则会抛出IllegalArgumentException异常。
  • 如果试图添加与子集中已有的元素相同的元素,则添加操作将被忽略。

下面是一个示例程序,演示了如何使用TreeSet subSet()方法:

import java.util.TreeSet;

public class TreeSetExample {
   public static void main(String[] args) {
      TreeSet<Integer> treeSet = new TreeSet<>();
      treeSet.add(10);
      treeSet.add(20);
      treeSet.add(30);
      treeSet.add(40);
      treeSet.add(50);

      System.out.println("Original TreeSet: " + treeSet);

      System.out.println("SubSet from 20 to 40: " + treeSet.subSet(20, 40));
      System.out.println("SubSet from 10 to 30: " + treeSet.subSet(10, 30));

      // adding element not in the subset
      // throws IllegalArgumentException
      // treeSet.subSet(20, 40).add(60);
   }
}

在上面的代码中,创建了一个包含整数的TreeSet。然后,使用subSet()方法创建了两个子集,一个包含20到40之间的元素,另一个包含10到30之间的元素。

程序的输出如下所示:

Original TreeSet: [10, 20, 30, 40, 50]
SubSet from 20 to 40: [20, 30]
SubSet from 10 to 30: [10, 20, 30]

在上面的输出中,可以看到两个使用subSet()方法创建的子集。

总的来说,TreeSet subSet()方法是一个非常有用的方法,可以帮助我们创建包含一定范围元素的子集。