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
3.142.212.160