org.apache.commons.collections4.map.LazyMap Example

Q

What is org.apache.commons.collections4.map.LazyMap class? How to use org.apache.commons.collections4.map.LazyMap class?

✍: FYIcenter.com

A

org.apache.commons.collections4.map.LazyMap class is a Java class offered in commons-collections4.jar that wraps a regular map into a special map with a mechanism to automatically generate any missing entries in the map.

A LazyMap object contains a Factory object that will be used to automatically generate the value of any key that does not exist in the LazyMap object, when the get() method is called.

Here is a simple example of using org.apache.commons.collections4.map.LazyMap class:

// Copyright (c) 2016 FYIcenter.com
import java.util.Date;
import java.util.Map;
import java.util.HashMap;
import org.apache.commons.collections4.Factory;
import org.apache.commons.collections4.map.LazyMap;

// Example of using the LazyMap class
public class LazyMapExample {
   public static void main(String[] args) throws Exception {
       
      // Create a "factory" with anonymous class
      Factory<Date> factory = new Factory<Date>() {
         public Date create() {
            return new Date();
         }
      };

      // Create a regular "map"
      Map<String, Date> map = new HashMap<String, Date>();
      
      // Wrap the regular "map" into a "lazy" map
      Map<String, Date> lazy = LazyMap.lazyMap(map, factory);

      // Generate values on the fly
      System.out.println(lazy.get("Before"));
      Thread.sleep(1000);
      System.out.println(lazy.get("After"));

      // Loop though the map
      for (String key : lazy.keySet()) {
         System.out.println(key + " = " + lazy.get(key));
      }
   }
}

You can compile and run the above example in a command window as shown below:

C:\fyicenter>\local\jdk-1.7.0\bin\javac 
   -cp C:\local\commons-collections4-4.1\commons-collections4-4.1.jar 
   LazyMapExample.java

C:\fyicenter>\local\jdk-1.7.0\bin\java
   -cp .;C:\local\commons-collections4-4.1\commons-collections4-4.1.jar 
   LazyMapExample

Thu Nov 13 22:17:38 EST 2016
Thu Nov 13 22:17:39 EST 2016
Before = Thu Nov 13 22:17:38 EST 2016
After = Thu Nov 13 22:17:39 EST 2016

 

Using commons-collections.jar in Java Programs

⇒⇒FAQ for Apache commons-collections.jar

2017-05-20, 273👍, 0💬