keySet().toArray(new Double[0])是什么意思?

6
以下返回值是什么意思?我该如何使用这个值:

以下为需要翻译的内容:

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个回答

6

这是正确的,但是只有在 theLabels 不为空的情况下,才会强制重新分配数组。以下是一种替代方案:

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

4
它将一组键转换为Double数组。参数new Double[0]是为了让编译器/JVM推断返回的数组的正确类型。(如果数组参数足够长以容纳所有键值,则将使用该数组,否则将创建一个具有所需长度的相同运行时类型的新数组。)
这里是Javadoc
你对返回值的分配是正确的。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接