Java NavigableSet subSet()方法
Java中NavigableSet接口的headSet()方法是用来返回这个集合中元素范围为fromElement到toElement的部分的视图。
- 如果fromElement和toElement相等,返回的集合是空的,除非fromInclusive和toInclusive都为真。
- 返回的集合是由这个集合支持的,所以返回的集合的变化会反映在这个集合中,反之亦然。
- 返回的集合支持这个集合支持的所有可选的集合操作。
注意 :如果试图插入一个超出其范围的元素,返回的集合将抛出一个IllegalArgumentException。
语法:
NavigableSet<E> subSet( E fromElement,
boolean fromInclusive,
E toElement,
boolean toInclusive);
其中,E是这个Set容器所维护的元素的类型。
参数 :这个函数接受4个参数,解释如下。
- fromElement : 这是一个强制性的参数,指定返回集合的低端点。
- fromInclusive : 这是一个可选的参数,是布尔型的。如果它被设置为True,那么低端点将被包含在返回的视图中,否则不包含。
- toElement : 这是一个强制性参数,指定返回集合的高端点。
- toInclusive : 这是一个可选的参数,是布尔型的。如果它被设置为True,那么低端点将包括在返回的视图中,否则不包括。
返回值 :它返回这个集合中元素范围从fromElement到toElement的部分的视图。
下面的程序说明了Java中的subSet()方法。
程序1 :具有整数元素的NavigableSet。
// A Java program to demonstrate
// subSet() method of NavigableSet
import java.util.NavigableSet;
import java.util.TreeSet;
public class GFG {
public static void main(String[] args)
{
NavigableSet<Integer> ns = new TreeSet<>();
ns.add(0);
ns.add(1);
ns.add(2);
ns.add(3);
ns.add(4);
ns.add(5);
ns.add(6);
System.out.println("Map with key-value between the given argument : "
+ ns.subSet(1, 6));
System.out.println("Map with key-value between the given argument : "
+ ns.subSet(2, 6));
}
}
输出:
Map with key-value between the given argument : [1, 2, 3, 4, 5]
Map with key-value between the given argument : [2, 3, 4, 5]
程序2: 带有字符串元素的NavigableSet。
// A Java program to demonstrate
// subSet() method of NavigableSet
import java.util.NavigableSet;
import java.util.TreeSet;
public class GFG {
public static void main(String[] args)
{
NavigableSet<String> ns = new TreeSet<>();
ns.add("A");
ns.add("B");
ns.add("C");
ns.add("D");
ns.add("E");
ns.add("F");
ns.add("G");
System.out.println("Map with key-value between the given range : "
+ ns.subSet("B", "G"));
}
}
输出:
Map with key-value between the given range : [B, C, D, E, F]
参考资料 : https://docs.oracle.com/javase/10/docs/api/java/util/NavigableSet.html#subSet(E, E)
极客教程