📜  Java中的 TreeSet lower() 方法

📅  最后修改于: 2022-05-13 01:54:57.464000             🧑  作者: Mango

Java中的 TreeSet lower() 方法

Java中 TreeSet 类的lower(E ele)方法用于返回该集合中严格小于给定元素的最大元素。如果此 TreeSet 集合中不存在此类元素,则此方法返回 NULL。

这里,E 是这个集合维护的元素的类型。

语法

public E lower(E ele)

参数:它只需要一个参数ele 。它是确定集合中严格小于该值的最大值的元素。

返回值:它返回一个 E 类型的值,该值为 null 或所需的值。

例外:

  • ClassCastException :如果指定的元素无法与集合的元素进行比较,则此方法将引发 ClassCastException。
  • NullPointerException :如果给定元素为 null 并且集合使用自然排序或比较器不允许 null 值,则此方法将引发 NullPointerException。

下面的程序说明了 lower() 方法:

程序 1

// Java program to illustrate lower() method
// of TreeSet class
  
import java.util.TreeSet;
public class GFG {
    public static void main(String args[])
    {
        TreeSet tree = new TreeSet();
  
        // Add elements to this TreeSet
        tree.add(10);
        tree.add(5);
        tree.add(8);
        tree.add(1);
        tree.add(11);
        tree.add(3);
  
        System.out.println(tree.lower(15));
    }
}

输出

11

程序 2 (NullPointerException 的演示):

// Java program to illustrate lower() method
// of TreeSet class
  
import java.util.TreeSet;
public class GFG {
    public static void main(String args[])
    {
        TreeSet tree = new TreeSet();
  
        try {
  
            // Add elements to TreeSet
            tree.add("10");
            tree.add("5");
            tree.add("8");
            tree.add("1");
            tree.add("11");
            tree.add("3");
  
            System.out.println(tree.lower(null));
        }
        catch (Exception e) {
            e.printStackTrace();
        }
    }
}

输出

java.lang.NullPointerException
    at java.util.TreeMap.compare(TreeMap.java:1294)
    at java.util.TreeMap.getLowerEntry(TreeMap.java:494)
    at java.util.TreeMap.lowerKey(TreeMap.java:711)
    at java.util.TreeSet.lower(TreeSet.java:414)
    at GFG.main(GFG.java:20)

程序 3 (ClassCastException 的演示):

// Java program to illustrate lower() method
// of TreeSet class
  
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
import java.util.TreeSet;
  
public class GFG {
    public static void main(String args[])
    {
        TreeSet tree = new TreeSet();
  
        List l1 = new LinkedList();
        l1.add(1);
        l1.add(2);
        tree.add(l1);
  
        List l2 = new LinkedList();
        l2.add(3);
        l2.add(4);
  
        List l3 = new ArrayList();
        l2.add(5);
        l2.add(6);
  
        try {
            System.out.println(tree.lower(l3));
        }
        catch (Exception e) {
            System.out.println(e);
        }
    }
}

输出

Exception in thread "main" java.lang.ClassCastException: 
java.util.LinkedList cannot be cast to java.lang.Comparable
    at java.util.TreeMap.compare(TreeMap.java:1294)
    at java.util.TreeMap.put(TreeMap.java:538)
    at java.util.TreeSet.add(TreeSet.java:255)
    at GFG.main(GFG.java:17)

参考:https: Java/util/TreeSet.html#lower(E)