Friday, February 22, 2019

Commons Collections - BidiMap Interface

New Interfaces are added to supports bidirectional Map. Using bidirectional map, a key can be lookup using value and value can be lookup using key easily.

Interface Declaration

Following is the declaration for
org.apache.commons.collections4.BidiMap<K,V> interface −
public interface BidiMap<K,V>
   extends IterableMap<K,V>

Methods

Sr.No.Method & Description
1
K getKey(Object value)
Gets the key that is currently mapped to the specified value.
2
BidiMap<V,K> inverseBidiMap()
Gets a view of this map where the keys and values are reversed.
3
V put(K key, V value)
Puts the key-value pair into the map, replacing any previous pair.
4
K removeValue(Object value)
Removes the key-value pair that is currently mapped to the specified value (optional operation).
5
Set<V> values()
Returns a Set view of the values contained in this map.

Methods Inherited

This interface inherits methods from the following interfaces −
  • org.apache.commons.collections4.Get
  • org.apache.commons.collections4.IterableGet
  • org.apache.commons.collections4.Put
  • java.util.Map

Example of BidiMap Interface

BidiMapTester.java
import org.apache.commons.collections4.BidiMap;
import org.apache.commons.collections4.bidimap.TreeBidiMap;

public class BidiMapTester {
   public static void main(String[] args) {
      BidiMap<String, String> bidi = new TreeBidiMap<>();

      bidi.put("One", "1");
      bidi.put("Two", "2");
      bidi.put("Three", "3");
      
      System.out.println(bidi.get("One")); 
      System.out.println(bidi.getKey("1"));
      System.out.println("Original Map: " + bidi);
      
      bidi.removeValue("1"); 
      System.out.println("Modified Map: " + bidi);
      BidiMap<String, String> inversedMap = bidi.inverseBidiMap();  
      System.out.println("Inversed Map: " + inversedMap);
   }
}

Output

It will print the following result.
1
One
Original Map: {One=1, Three=3, Two=2}
Modified Map: {Three=3, Two=2}
Inversed Map: {2=Two, 3=Three}

No comments:

Post a Comment

Popular Posts