面试题答案
一键面试实现思路
- 创建一个
TreeSet
并添加一些整数元素。 - 使用
subSet
方法获取TreeSet
中大于等于10且小于等于20的子集。subSet
方法有两个参数,第一个参数是子集的起始值(包含),第二个参数是子集的结束值(不包含),这里由于要包含20,所以使用subSet(10, 21)
。 - 遍历该子集并按升序输出其中的元素。
代码实现
import java.util.TreeSet;
public class TreeSetQuery {
public static void main(String[] args) {
TreeSet<Integer> treeSet = new TreeSet<>();
treeSet.add(5);
treeSet.add(15);
treeSet.add(25);
treeSet.add(10);
treeSet.add(20);
// 获取大于等于10且小于等于20的子集
TreeSet<Integer> subSet = new TreeSet<>(treeSet.subSet(10, 21));
// 按升序输出子集元素
for (Integer num : subSet) {
System.out.println(num);
}
}
}
说明
- 首先创建
TreeSet
对象treeSet
并添加一些整数元素。 - 使用
subSet(10, 21)
获取大于等于10且小于等于20的子集,并将其存储在subSet
中。 - 使用
for - each
循环遍历subSet
,并将其中的元素按升序输出。由于TreeSet
本身是有序的,所以subSet
也是有序的。
如果使用其他编程语言,例如Python,可如下实现:
tree_set = {5, 15, 25, 10, 20}
sub_set = sorted([num for num in tree_set if 10 <= num <= 20])
for num in sub_set:
print(num)
这里先使用列表推导式筛选出符合条件的元素,再用sorted
函数进行升序排序,最后遍历输出。