Use ArrayUtils.toMap()
to create a Map
from a
two-dimensional array (Object[][]
).
Example 1-8 demonstrates the creation
of such a Map
. Example 1-8 takes an Object[][]
representing atomic symbols and
atomic weights and turns it into a Map
retrieving the atomic weight for
hydrogen.
Example 1-8. Creating a Map from an Object[ ][ ]
import org.apache.commons.lang.ArrayUtils; Object[] weightArray = new Object[][] { {"H" , new Double( 1.007)}, {"He", new Double( 4.002)}, {"Li", new Double( 6.941)}, {"Be", new Double( 9.012)}, {"B", new Double(10.811)}, {"C", new Double(12.010)}, {"N", new Double(14.007)}, {"O", new Double(15.999)}, {"F", new Double(18.998)}, {"Ne", new Double(20.180)} }; // Create a Map mapping colors. Map weights = ArrayUtils.toMap( weightArray ); Double hydrogenWeight = map.get( "H" );
Instead of calling weights.put(
)
for each entry in the Map
, an Object[][]
is created and then passed to
ArrayUtils.toMap()
. The toMap()
method then extracts the first item in each array as the
key and the second item as the value. This is a simple way to quickly
create a Map
in a piece of code; the
alternative to using ArrayUtils.toMap(
)
is to simply create a Map
and repeatedly call the put( )
method.
In the previous example, Double
objects are added to a Map
, and
values are retrieved from the Map
using get( )
. Commons Collections
contains utility methods for retrieving Double
objects as double
primitives; MapUtils.getDouble( )
retrieves an object from
a Map
, casts it to a Number
, and calls doubleValue( )
using the default value
supplied if there is no corresponding key in the Map
. See Recipe 5.21 for
more information about MapUtils.getDouble(
)
.