2011-04-18 32 views
6

¿Qué significa lo siguiente? Y cómo puedo usar ese valor:¿Qué hace keySet(). ToArray (nuevo Double [0])?

private Map<Double, String> theLabels = new HashMap<Double, String>(); 

public Double[] getTheLabels() { 
    return theLabels.keySet().toArray(new Double[0]); 
    } 

¿Es esto correcto?

Double[] aD = theClassInQuestion.getTheLabels(); 

Gracias de antemano.

HJW

Respuesta

4

Convierte el conjunto de teclas en una matriz de Double s. El parámetro new Double[0] es necesario para que el compilador/JVM infiera el tipo correcto para la matriz que se devolverá. (Si el parámetro de matriz es lo suficientemente largo para contener todos los valores clave, se usará; de lo contrario, se creará una nueva matriz del mismo tipo de ejecución con la longitud requerida).

Aquí está the Javadoc.

Su asignación del valor de retorno es correcta.

6

Es correcto, sin embargo, a menos que theLabels esté vacío, la reasignación de la matriz es forzada. Aquí hay una alternativa:

public Double[] getTheLabels() { 
    return theLabels.keySet().toArray(new Double[theLabels.size()]); 
} 
Cuestiones relacionadas