keySet()。toArray(new Double [0])做什么?

时间:2011-04-18 11:50:47

标签: java map

以下回报有何作用?我该如何使用该值:

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

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

这是对的吗?

Double[] aD = theClassInQuestion.getTheLabels();

提前致谢。

HJW

2 个答案:

答案 0 :(得分:6)

但是,除非theLabels为空,否则强制重新分配数组是正确的。这是另一种选择:

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

答案 1 :(得分:4)

它将密钥集转换为Double s的数组。编译器/ JVM需要参数new Double[0]来推断要返回的数组的正确类型。 (如果数组参数足够长以容纳所有键值,则将使用它,否则将创建具有所需长度的相同运行时类型的新数组。)

这是the Javadoc

您对返回值的分配是正确的。