Java TreeMap subMap() Method



Description

The Java TreeMap subMap(K fromKey,K toKey) method is used to return a view of the portion of this map whose keys range from fromKey, inclusive, to toKey, exclusive. (If fromKey and toKey are equal, the returned map is empty.) The returned map is backed by this map, so changes in the returned map are reflected in this map, and vice-versa.

Declaration

Following is the declaration for java.util.TreeMap.subMap() method.

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

Parameters

  • fromKey − This is the low endpoint (inclusive) of the keys in the returned map.

  • toKey − This is the high endpoint (exclusive) of the keys in the returned map.

Return Value

The method call returns a view of the portion of this map whose keys range from fromKey, inclusive, to toKey, exclusive.

Exception

  • ClassCastException − This exception is thrown if fromKey and toKey cannot be compared to one another using this map's comparator.

  • NullPointerException − This exception is thrown if fromKey or toKey is null and this map uses natural ordering, or its comparator does not permit null keys.

  • IllegalArgumentException − This exception is thrown if fromKey is greater than toKey; or if this map itself has a restricted range, and fromKey or toKey lies outside the bounds of the range.

Java TreeMap subMap(K fromKey, boolean fromInclusive, K toKey, boolean toInclusive) Method

Description

The subMap(K fromKey, boolean fromInclusive, K toKey, boolean toInclusive) method is used to return a view of the portion of this map whose keys range from fromKey to toKey. If fromKey and toKey are equal, the returned map is empty unless fromExclusive and toExclusive are both true. The returned map is backed by this map, so changes in the returned map are reflected in this map, and vice-versa.

Declaration

Following is the declaration for java.util.TreeMap.subMap() method.

public NavigableMap<K,V> subMap(K fromKey,
                                boolean fromInclusive,
                                K toKey,
                                boolean toInclusive)

Parameters

  • fromKey − This is the low endpoint of the keys in the returned map.

  • fromInclusive − This is true if the low endpoint is to be included in the returned view.

  • toKey − This is the high endpoint of the keys in the returned map.

  • toInclusive − This is true if the high endpoint is to be included in the returned view.

Return Value

The method call returns a view of the portion of this map whose keys range from fromKey to toKey.

Exception

  • ClassCastException − is exception is thrown if fromKey and toKey cannot be compared to one another using this map's comparator.

  • NullPointerException − This exception is thrown if fromKey or toKey is null and this map uses natural ordering, or its comparator does not permit null keys.

  • IllegalArgumentException − This exception is thrown if fromKey is greater than toKey; or if this map itself has a restricted range, and fromKey or toKey lies outside the bounds of the range.

Getting SubMap of a TreeMap of Integer,Integer Pair Example

The following example shows the usage of Java TreeMap subMap(K fromKey, K toKey) method to get the submap of this map whose keys range from fromKey, inclusive, to toKey, exclusive. We've created two TreeMap objects of Integer,Integer pairs. Then few entries are added to first map, and using subMap() we're retrieving and printing the submap from the first map.

package com.tutorialspoint;

import java.util.SortedMap;
import java.util.TreeMap;

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

      // creating maps 
      TreeMap<Integer, Integer> treemap = new TreeMap<>();
      SortedMap<Integer, Integer> treemapincl = new TreeMap<>();

      // populating tree map
      treemap.put(2, 2);
      treemap.put(1, 1);
      treemap.put(3, 3);
      treemap.put(6, 6);
      treemap.put(5, 5);      

      System.out.println("Getting a portion of the map");
      treemapincl = treemap.subMap(1,5);
      System.out.println("Sub map values: "+treemapincl);      
   }    
}

Output

Let us compile and run the above program, this will produce the following result.

Getting a portion of the map
Sub map values: {1=1, 2=2, 3=3}

Getting SubMap of a TreeMap of Integer,String Pair Example

The following example shows the usage of Java TreeMap subMap(K fromKey, K toKey) method to get the submap of this map whose keys range from fromKey, inclusive, to toKey, exclusive. We've created two TreeMap objects of Integer,String pairs. Then few entries are added to first map, and using subMap() we're retrieving and printing the submap from the first map.

package com.tutorialspoint;

import java.util.SortedMap;
import java.util.TreeMap;

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

      // creating maps 
      TreeMap<Integer, String> treemap = new TreeMap<>();
      SortedMap<Integer, String> treemapincl = new TreeMap<>();

      // populating tree map
      treemap.put(2, "two");
      treemap.put(1, "one");
      treemap.put(3, "three");
      treemap.put(6, "six");
      treemap.put(5, "five");      

      System.out.println("Getting a portion of the map");
      treemapincl = treemap.subMap(1,5);
      System.out.println("Sub map values: "+treemapincl);      
   }    
}

Output

Let us compile and run the above program, this will produce the following result.

Getting a portion of the map
Sub map values: {1=one, 2=two, 3=three}

Getting SubMap of a TreeMap of Integer,Object Pair Example

The following example shows the usage of Java TreeMap subMap(K fromKey, boolean fromInclusive, K toKey, boolean toInclusive) method to get the submap of this map whose keys range from fromKey to toKey and using inclusive flags for both keys. We've created two TreeMap objects of Integer,String pairs. Then few entries are added to first map, and using subMap() we're retrieving and printing the submap from the first map.

package com.tutorialspoint;

import java.util.NavigableMap;
import java.util.TreeMap;

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

      // creating maps 
      TreeMap<Integer, String> treemap = new TreeMap<>();
      NavigableMap<Integer, String> treemapincl = new TreeMap<>();

      // populating tree map
      treemap.put(2, "two");
      treemap.put(1, "one");
      treemap.put(3, "three");
      treemap.put(6, "six");
      treemap.put(5, "five");      

      System.out.println("Getting a portion of the map");
      treemapincl = treemap.subMap(1, true, 3, true);
      System.out.println("Sub map values: "+treemapincl);      
   }    
}

Output

Let us compile and run the above program, this will produce the following result.

Getting a portion of the map
Sub map values: {1=one, 2=two, 3=three}
java_util_treemap.htm
Advertisements