TreeMap ceilingKey(Integer) in Java

ceilingKey(Integer): This method is available in java.util.TreeMap class of Java.

Syntax:

Integer java.util.TreeMap.ceilingKey(Integer key)

This method takes one argument. This method returns the least key greater than or equal to the given key, or null if there is no such key.

Parameters: One parameter is required for this method.

key: the key.

Returns: the least key greater than or equal to key, or null if there is no such key.

Throws:

1. ClassCastException - if the specified key cannot be compared with the keys currently on the map.

2. NullPointerException - if the specified key is null and this map uses natural ordering, or its comparator does not permit null keys.

Approach 1: When no exception

Java

import java.util.TreeMap;

public class TreeMapceilingKey {
    public static void main(String[] args) {

        TreeMap<Integer, String> treeMap =
new TreeMap<Integer, String>();

        treeMap.put(2, "Hello");
        treeMap.put(11, "Java");
        treeMap.put(23, "Program");
        treeMap.put(6, "C++");
        treeMap.put(25, "Program");

        Integer key = 2;

        System.out.println(treeMap.ceilingKey(key));
    }
}

Output:

2


Approach 2: NullPointerException

Java

import java.util.TreeMap;

public class TreeMapceilingKey {
    public static void main(String[] args) {

        TreeMap<Integer, String> treeMap =
new TreeMap<Integer, String>();

        treeMap.put(2, "Hello");
        treeMap.put(11, "Java");
        treeMap.put(23, "Program");
        treeMap.put(6, "C++");
        treeMap.put(25, "Program");

        Integer key = null;

        System.out.println(treeMap.ceilingKey(key));
    }
}

Output:

Exception in thread "main" java.lang.NullPointerException: Cannot invoke "java.lang.Comparable.compareTo(Object)" because "k1" is null at java.base/java.util.TreeMap.compare(TreeMap.java:1563) at java.base/java.util.TreeMap.getCeilingEntry(TreeMap.java:395) at java.base/java.util.TreeMap.ceilingKey(TreeMap.java:1024)



No comments:

Post a Comment