2011-04-18 89 views
6

以下回報是做什麼的?我該如何使用該值:keySet()。toArray(new 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秒的陣列。編譯器/ JVM需要參數new Double[0]來推斷要返回的數組的正確類型。 (如果數組參數足夠長以容納所有鍵值,將使用它,否則將創建具有所需長度的相同運行時類型的新數組。)

這裏是the Javadoc

您賦值的返回值是正確的。

6

然而,它是正確的,除非theLabels爲空,否則強制重新分配數組。以下是替代方案:

public Double[] getTheLabels() { 
    return theLabels.keySet().toArray(new Double[theLabels.size()]); 
} 
相關問題