java - 使用 Arrays.asList 将基元数组转换为 List

标签 java

我有这个:

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

为什么我会在这里收到错误?

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

最佳答案

在 Java 中,像 List 这样的集合只能引用引用类型double[]是一个基元数组(但数组本身是一个引用类型)。正因为如此,Arrays.asList正在尝试创建一个List<double[]> ,如果您尝试对该列表进行 for-each 操作,您将得到 double[] 的项目数组而不是单个double值。

但是,您仍然可以对原始数组使用 for-each 循环:

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

关于java - 使用 Arrays.asList 将基元数组转换为 List,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38590396/

相关文章:

java - 在字符串中的所有单词 "o", "google",...中找到字母数 "gooogle"的乘积

Java同步性能

java - 无限 IntStream 的长度?

java - Char 到 Int,将 int 值更改回 char,然后添加到字符串

java - 日期在java中将dd-MMM-yyyy转换为dd-MM-yyyy

java - Injectind 在运行时通过 CDI 自动实现

java - 有什么方法可以防止 Mock 实现出现 "resource"警告吗?

java - 如何通过两个字段加入(CriteriaBuilder)

java - 在 while 循环中编辑时 JTextField 不更新

java - 卡片 - 牌组 - Hand Java 项目