Use MapUtils.getDoubleValue()
to retrieve a Double
object from a Map as a double primitive. The following example
demonstrates getDoubleValue(
):
import java.util.*;
import org.apache.commons.lang.ArrayUtils;
import org.apache.commons.collections.MapUtils;
Object[] mapArray = new Object[][] {
{ "A", new Double( 2.0 ) },
{ "B", new Double( 0.223242 ) },
{ "C", new Double( 2828e4 ) },
{ "D", "GARBAGE"} };
Map numberMap = ArrayUtils.toMap( mapArray );
double a = MapUtils.getDoubleValue( numberMap, "A" );
double b = MapUtils.getDoubleValue( numberMap, "B" );
double c = MapUtils.getDoubleValue( numberMap, "C" );
double d = MapUtils.getDoubleValue( numberMap, "D", new Double( Double.NaN ) );
System.out.println( "A = " + a );
System.out.println( "B = " + b );
System.out.println( "C = " + c );
System.out.println( "D = " + d );This simple utility retrieves four doubles from numberMap; the fourth call to getDoubleValue( ) supplies a default double to be returned if the value's type
cannot be converted to a double. This
example produces the following output:
A = 2.0 B = 0.223242 C = 28280.0 D = NaN
This utility is laughably simple, but if you are working with
numbers, this utility can help you avoid casting and calling doubleValue( ). In addition to MapUtils.getDoubleValue( ), MapUtils also contains the MapUtils.getDouble( ) method, which simply
returns a Double object. The
following example demonstrates the various utility methods for obtaining
primitives and their corresponding object types from a Map:
import java.util.*; import org.apache.commons.collections.MapUtils; Map map = new HashMap( ); map.put( "A", new Long( 3.4 ) ); map.put( "B", new Short( 33 ) ); map.put( "C", "BLAH" ); Number aNumber = MapUtils.getNumber( map, "A" ); Long aLong = MapUtils.getLong( map, "A" ); long a = MapUtils.getLongValue( map, "A" ); short b = MapUtils.getShortValue( map, "B" ); Byte c = MapUtils.getByte( map, "C", Byte.MAX_VALUE );
As shown in the previous example, MapUtils contains utility methods for working
with bytes, shorts, and long, among other primitive types.
Table 5-1 details
several related methods for Boolean,
Double, and Number, which can retrieve objects and
primitive values from a Map. While
Table 5-1 deals with Boolean and Double, you should be aware that similar
methods exist for all primitive types and corresponding objects.
Table 5-1. Methods on MapUtils
