当前位置: 首页 > 面试题库 >

如何从列表中投射 在Java中翻倍[]?

丁均
2023-03-14
问题内容

我有一个像这样的变量:

List<Double> frameList =  new ArrayList<Double>();

/* Double elements has added to frameList */

double[]在Java中,如何才能获得具有Java中该变量类型的新变量?


问题答案:

高性能-每个Double对象都包装一个double值。如果要将所有这些值存储double[]数组中,则 必须
遍历Double实例的集合。一个O(1)映射是不可能的,这应该是你可以得到最快的:

 double[] target = new double[doubles.size()];
 for (int i = 0; i < target.length; i++) {
    target[i] = doubles.get(i).doubleValue();  // java 1.4 style
    // or:
    target[i] = doubles.get(i);                // java 1.5+ style (outboxing)
 }

感谢评论中的其他问题;)这是fitting ArrayUtils#toPrimitive方法的源代码:

public static double[] toPrimitive(Double[] array) {
  if (array == null) {
    return null;
  } else if (array.length == 0) {
    return EMPTY_DOUBLE_ARRAY;
  }
  final double[] result = new double[array.length];
  for (int i = 0; i < array.length; i++) {
    result[i] = array[i].doubleValue();
  }
  return result;
}

(并且相信我,我没有将它用于我的第一个答案-即使它看起来…很相似:-D)

顺便说一句,Marcelos答案的复杂度为O(2n),因为它迭代了两次(在后台):首先Double[]从列表中进行,然后解开double值。



 类似资料:
  • 例如,我的列表包含{4,6,6,7,7,8},我想要最终结果= {6,6,7,7} 一种方法是遍历列表并消除唯一值(本例中为4,8)。 除了在列表中循环之外,还有其他有效的方法吗?我问这个问题是因为我正在工作的列表非常大?我的密码是

  • 问题内容: 我想深入克隆一个列表。为此,我们有一种方法 所以现在要克隆我的列表,我应该先将其转换为可序列化的。是否可以将列表转换为可序列化列表? 问题答案: 已实施的所有标准实施。 因此,即使它本身不是的子类型,也可以安全地将列表强制转换为,只要您知道它是诸如或的标准实现之一。 如果不确定,请先复制列表(使用),然后知道它是可序列化的。

  • 我不熟悉java和springboot。我正在尝试使用springboot创建一个CRUD应用程序。我使用MySQL存储数据。 员工模式- 员工资源库- 员工控制员- 上面的控制器在JSON对象数组表单中给出了结果,如下所示 但我需要以下表格的回复 非常感谢你的帮助。

  • 问题内容: 我正在尝试让Akka进入我的Java项目,并且我挂了一个Scala的Seq类型的小问题。我可以将ActorRef的Java列表转换为scala.collection.Seq,但是我要使用的Akka API需要一个scala.collection.immutable.Seq。我该怎么做? 码: 问题答案: 您可以使用到Java转换为斯卡拉,其中有一个方法和斯卡拉是一个。

  • 我有这个endpoint(删除了所有不相关的endpoint),我想看看如何直接从参数映射中获取文件名列表: 第一个@RequestParam是使“file”参数成为必需的, 第二个@RequestParam是将所有参数放入映射中,而不是单独获取 即。:http://localhost:8080/files?file=first

  • 在我的Spring Boot项目中,我有两个类(实体和模型) 在模型中有一个列表 :