2011-04-18 4 views
6

다음 수익은 무엇을합니까? 그리고 그 값을 어떻게 사용할 수 있습니까?keySet(). toArray (새로운 Double [0])는 무엇을합니까?

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

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

이것이 맞습니까?

Double[] aD = theClassInQuestion.getTheLabels(); 

미리 감사드립니다.

HJW

답변

4

그것은 Double의 배열로 키들의 세트로 변환한다. 매개 변수 new Double[0]은 컴파일러/JVM이 배열이 반환되는 올바른 유형을 추론하는 데 필요합니다. 배열 매개 변수가 모든 키 값을 포함 할 수있을만큼 길면 사용되며, 그렇지 않으면 동일한 런타임 유형의 새 배열이 필요한 길이로 생성됩니다.

여기에 the Javadoc입니다.

반환 값이 올바로 지정되었습니다.

6

그러나 TheLabels이 비어 있지 않으면 배열의 재 할당이 강제됩니다. 대안은 다음과 같습니다.

public Double[] getTheLabels() { 
    return theLabels.keySet().toArray(new Double[theLabels.size()]); 
} 
관련 문제