Java 中 NavigableSet subSet() 方法
Java 中的 NavigableSet 接口扩展了 SortedSet 接口并添加了一些新的方法。其中一个方法是 subSet()。在本文中,我们将详细介绍 Java 中 NavigableSet subSet() 方法的用途、功能和示例代码。
NavigableSet subSet() 方法概述
subSet() 方法是 NavigableSet 接口定义的一种方法。它用于返回一个 NavigableSet,其中包含指定范围内的元素(从指定的起始索引到指定的终止索引)。返回的子集是连续的,这意味着它包含的元素都在同一范围内,范围由指定的起始索引和终止索引定义。
public NavigableSet<E> subSet(E fromElement, boolean fromInclusive, E toElement,
boolean toInclusive);
public SortedSet<E> subSet(E fromElement, E toElement);
其中,第一个方法返回一个包含指定范围内元素的 NavigableSet,而第二个方法返回一个包含指定范围内元素的 SortedSet。
NavigableSet subSet() 方法示例
下面我们将通过几个示例来演示 NavigableSet subSet() 方法的使用。
示例一:使用 subSet() 方法得到一个连续的子集
以下代码展示了如何使用 subSet() 方法来获取包含指定范围内元素的 NavigableSet。在此示例中,我们使用 TreeSet 作为 NavigableSet 的实现。
import java.util.NavigableSet;
import java.util.TreeSet;
public class SubSetExample {
public static void main(String[] args) {
NavigableSet<Integer> ns = new TreeSet<>();
ns.add(1);
ns.add(2);
ns.add(3);
ns.add(4);
ns.add(5);
NavigableSet<Integer> subSet = ns.subSet(2, true, 5, true);
System.out.println(subSet);
}
}
在上述示例中,我们创建了一个 NavigableSet 对象 ns,并向其添加了五个整数。我们使用 subSet() 方法获取了指定范围内的元素(从2到5),包含起始索引和终止索引。该方法的第二个参数和第四个参数用于指定起始索引和终止索引是否包含在子集中。输出的结果为:
[2, 3, 4, 5]
示例二:使用 subSet() 方法得到 SortedSet
以下代码展示了如何使用 subSet() 方法来获取包含指定范围内元素的 SortedSet。
import java.util.SortedSet;
import java.util.TreeSet;
public class SubSetExample2 {
public static void main(String[] args) {
SortedSet<Integer> ss = new TreeSet<>();
ss.add(1);
ss.add(2);
ss.add(3);
ss.add(4);
ss.add(5);
SortedSet<Integer> subSet = ss.subSet(2, 5);
System.out.println(subSet);
}
}
在上述示例中,我们创建了一个 SortedSet 对象 ss,并向其添加了五个整数。我们使用 subSet() 方法获取了指定范围内的元素(从2到5),不包含起始索引和终止索引。输出的结果为:
[2, 3, 4]
示例三:使用 subSet() 方法删除 NavigableSet 中的元素
以下代码展示了如何使用 subSet() 方法从 NavigableSet 对象中删除指定范围内的元素。
import java.util.NavigableSet;
import java.util.TreeSet;
public class SubSetExample3 {
public static void main(String[] args) {
NavigableSet<Integer> ns = new TreeSet<>();
ns.add(1);
ns.add(2);
ns.add(3);
ns.add(4);
ns.add(5);
System.out.println("Before SubSet: " + ns);
ns.subSet(2, true, 4, true).clear();
System.out.println("After SubSet: " + ns);
}
}
在上述示例中,我们创建了一个 NavigableSet 对象 ns,并向其添加了五个整数。我们使用 subSet() 方法获取了指定范围(从2到4)内的元素,包含起始索引和终止索引,然后使用 clear() 方法将其从 NavigableSet 中删除。输出的结果为:
Before SubSet: [1, 2, 3, 4, 5]
After SubSet: [1, 4, 5]
结论
在 Java 中,NavigableSet subSet() 方法可以返回一个包含指定范围内元素的集合,该方法提供了许多灵活的功能,可以让我们有条件地获取集合的子集,或者删除指定范围内的元素。这个方法的用法非常简单,只需传递起始和终止索引即可。