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

📅  最后修改于: 2023-12-03 15:01:55.780000             🧑  作者: Mango

Java中的 NavigableSet subSet() 方法

Java中的NavigableSet是一个接口,继承了SortedSet接口,并且可以通过subSet()方法返回NavigableSet的子集。

subSet()方法有多个重载形式。其中两个重要的方法签名如下:

NavigableSet<E> subSet(E fromElement, boolean fromInclusive, E toElement, boolean toInclusive)

NavigableSet<E> subSet(E fromElement, E toElement)
subSet(E fromElement, boolean fromInclusive, E toElement, boolean toInclusive)

这个方法返回从fromElement到toElement的子集。参数fromInclusive和toInclusive决定是否包含fromElement和toElement本身。

示例代码:

NavigableSet<String> set = new TreeSet<>();
set.add("a");
set.add("b");
set.add("c");
set.add("d");
set.add("e");
NavigableSet<String> subSet = set.subSet("b", true, "d", false);
System.out.println(subSet); // 输出 [b, c]
subSet(E fromElement, E toElement)

这个方法返回从fromElement到toElement的子集(包括fromElement但不包括toElement)。

示例代码:

NavigableSet<Integer> set = new TreeSet<>();
set.add(1);
set.add(2);
set.add(3);
set.add(4);
set.add(5);
NavigableSet<Integer> subSet = set.subSet(2, 4);
System.out.println(subSet); // 输出 [2, 3]

需要注意的是,如果NavigableSet使用了自然排序,从fromElement到toElement的元素必须实现Comparable接口。

如果NavigableSet使用了自定义排序,则应提供Comparator实例作为NavigableSet构造函数的参数,并且从fromElement到toElement的元素必须是Comparator所能接受的类型。