📅  最后修改于: 2023-12-03 15:31:55.982000             🧑  作者: Mango
Java中的TreeSet是一种有序的集合,通过TreeSet存储的元素默认按升序进行排序。TreeSet提供了lower()方法,可以返回集合中小于指定元素的最大元素。
public E lower(E e)
e: 指定元素,所在泛型类型的对象。
e在集合中的下一个小于它的元素,如果没有这样的则返回 null 。
import java.util.TreeSet;
public class TreeSetExample {
public static void main(String[] args) {
TreeSet<Integer> set = new TreeSet<>();
set.add(1);
set.add(3);
set.add(5);
set.add(7);
set.add(9);
System.out.println(set.lower(6));//输出 5
System.out.println(set.lower(1));//输出 null
System.out.println(set.lower(10));//输出 9
}
}
上述代码创建了一个TreeSet集合,向其中添加了5个整数元素。然后通过lower()方法分别找出了6、1、10在集合中小于它们的最大元素。
运行结果显示,lower(6)返回值为5,即在集合中小于6的最大元素是5;lower(1)返回值为null,因为在集合中并没有比1更小的元素;lower(10)返回值为9,因为在集合中小于10的最大元素是9。
lower()方法只能用于存储已经实现Comparable或者Comparator接口的Java对象,否则会在调用方法时抛出ClassCastException异常。
在TreeSet中,元素的比较是基于自然排序或者比较器的比较方式,因此要保证集合中的元素具有可比较性。