Java keySet().toArray(新的双精度[0])做什么?

Java keySet().toArray(新的双精度[0])做什么?,java,map,Java,Map,下面的回报是什么?我如何使用该值: private Map<Double, String> theLabels = new HashMap<Double, String>(); public Double[] getTheLabels() { return theLabels.keySet().toArray(new Double[0]); } 提前谢谢 HJW它将一组键转换为一个由Doubles组成的数组。编译器/JVM需要参数new Double[0]来推

下面的回报是什么?我如何使用该值:

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

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


HJW

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

这是


您对返回值的赋值是正确的。

这是正确的,但是,除非标签为空,否则将强制重新分配数组。这里有一个替代方案:

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