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

Har*_*elm 6 java map

以下返回有什么作用?我该如何使用该值:

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

public Double[] getTheLabels() {
  return theLabels.keySet().toArray(new Double[0]);
  }
Run Code Online (Sandbox Code Playgroud)

它是否正确?

Double[] aD = theClassInQuestion.getTheLabels();
Run Code Online (Sandbox Code Playgroud)

提前致谢.

HJW

Mau*_*rry 6

但是,这是正确的,除非theLabels为空,否则强制重新分配数组.这是一个替代方案:

public Double[] getTheLabels() {
    return theLabels.keySet().toArray(new Double[theLabels.size()]);
}
Run Code Online (Sandbox Code Playgroud)


Pét*_*rök 4

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

这是Javadoc

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