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

使用Arrays.asList将基本数组转换为List

吕峰
2023-03-14
问题内容

我有这个:

import java.util.Arrays;
import java.util.ArrayList;
public class Test1 {

    public static void main(String[] args) {

      double[] a = new double[2];

      for( double d : Arrays.asList(a)) 
            System.out.println(d); 
  }

}

输出:

$ javac Test1.java 
Test1.java:9: error: incompatible types
      for( double d : Arrays.asList(a)) 
                                   ^
  required: double
  found:    double[]
1 error

为什么我在这里出错?

错误的含义是什么? 它告诉我什么?


问题答案:

您在这里遇到错误,是因为当您使用接受varargs的函数时,此函数在幕后创建了您在其中传递的对象的新数组。因此,Arrays.asList(1,2,3)实际上得到
了一个整数数组
当您传递整数 数组时,请 在后台Arrays.asList()创建 一个 整数 数组数组 。这就是为什么您不能通过以下循环对其进行迭代:

for( double d : Arrays.asList(a))

尝试像这样更改它:

for(double[] d : Arrays.asList(a))

d实际上,您将看到对传递给Arrays.asList()- 的数组的引用a



 类似资料:
  • 问题内容: 使用,为什么它对(原始类型)和数组显示不同的列表大小? a)对于数组,每当我执行以下程序时,列表大小= 1 b)但是,如果我从数组类型更改为array(如),则列表大小为4,我认为这是正确的。 PS :使用(包装类)数组,则结果很好,但是我不确定为什么在原始数组中列表大小为1。请解释。 问题答案: 由于Java泛型而无法保存原始值(请参阅类似的问题)。因此,当您调用Arrays 时,将

  • 我怎么能转换一个大的到与洛塔什?

  • 问题内容: 我有一个包含几个整数的数组。我已经向数组添加了一些值,但是现在我需要通过jQuery的方法将此数组发送到页面。如何将其转换为JSON对象进行发送? 问题答案: 向后兼容的脚本:https : //github.com/douglascrockford/JSON- js/blob/master/json2.js 并致电: 注意: JSON对象现在是大多数现代Web浏览器(IE 8及更高版

  • 问题内容: 如何将数组转换为CSV文件? 这是我的数组: 问题答案: 我正在使用以下功能;它是对fputscsv注释中的man条目之一的改编。而且您可能想要展平该数组;不知道如果您传递一个多维的行会发生什么。

  • 问题内容: 是否有一种优雅的方法将原语数组转换为相应容器对象的数组- 例如,将a 转换为a ?还是我坚持循环浏览并手动执行? 是的,循环并不完全困难。有点丑。 问题答案: Apache Commons Apache Commons / Lang 有一个ArrayUtils类,用于定义这些方法。 所有称为 从原始数组转换为包装器数组的方法 从包装对象数组到原始数组的所有转换 例: 番石榴 但是然后我

  • 转换/展平列表的简单方法是什么 我知道我可以通过迭代并使用来做到这一点,但我想知道是否有更简单的方法使用Java8个流来做到这一点? 可能是这样的,但不必将原语char装箱到Character: