SortedMap subMap() method in Java

The subMap() method of SortedMap interface in Java is used to return a view of the portion of this map whose keys range from fromKey, inclusive, to toKey, exclusive.

  • The map returned by this method is backed by this map, so changes in the returned map are reflected in this map, and vice-versa.
  • The map returned by this method supports all optional map operations that this map supports.

Note: The map returned by this method will throw an IllegalArgumentException if an attempt is made to insert a key outside its range.

Syntax:

SortedMap<K, V> subMap(K fromKey,
                      K toKey)

Where, K is the type of key maintained by this Set and V is the type of values associated with the Key.

Parameters: This function accepts two parameter fromKey and toKey which represents low endpoint (inclusive) and high endpoint (exclusive) respectively of the keys in the returned map.

Return Value: It returns a view of the portion of this map whose keys range from fromKey to toKey.

Exception:

  • ClassCastException: If the parameter fromKey is not compatible with this map’s comparator (or, if the map has no comparator, if fromKey does not implement Comparable).
  • NullPointerException: If the parameter fromKey is null and this map does not permit null keys.
  • IllegalArgumentException: If this map itself has a restricted range, and fromKey lies outside the bounds of the range

Below programs illustrate the above method:

Program 1:

filter_none

edit
close

play_arrow

link
brightness_4
code

// A Java program to demonstrate
// working of SortedSet
import java.util.*;
  
public class Main {
    public static void main(String[] args)
    {
        // Create a TreeSet and inserting elements
        SortedMap<Integer, String> mp = new TreeMap<>();
  
        // Adding Element to SortedSet
        mp.put(1, "One");
        mp.put(2, "Two");
        mp.put(3, "Three");
        mp.put(4, "Four");
        mp.put(5, "Five");
  
        // Returning the key ranging
        // between 2 and 5
        System.out.print("Elements in range from 2 to 5 in the map is : "
                         + mp.subMap(2, 5));
    }
}

chevron_right


Output:

Elements in range from 2 to 5 in the map is : {2=Two, 3=Three, 4=Four}

Program 2:

filter_none

edit
close

play_arrow

link
brightness_4
code

// A Java program to demonstrate
// working of SortedSet
import java.util.*;
  
public class Main {
    public static void main(String[] args)
    {
        // Create a TreeSet and inserting elements
        SortedMap<String, String> mp = new TreeMap<>();
  
        // Adding Element to SortedSet
        mp.put("One", "Geeks");
        mp.put("Two", "For");
        mp.put("Three", "Geeks");
        mp.put("Four", "Code");
        mp.put("Five", "It");
  
        // Returning the key range between D and Z
        System.out.print("Key in range from D to Z in the map is : "
                         + mp.subMap("D", "Z"));
    }
}

chevron_right


Output:

Key in range from D to Z in the map is : {Five=It, Four=Code, One=Geeks, Three=Geeks, Two=For}

Reference: https://docs.oracle.com/javase/10/docs/api/java/util/SortedMap.html#subMap(K)



My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.