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

标签 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值(value)观。

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

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

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

相关文章:

java - Kotlin-创建指定长度的随机整数的ArrayList吗?

java - Android Studio "error: incompatible types: Fragment cannot be converted to SupportMapFragment"

java - 省略莱宁根的部分来源

java - JENKINS : Can not set org. eclipse.aether.spi.log.Logger 字段 org.eclipse.aether.internal.impl.DefaultLocalRepositoryProvider.logger

java - 如何在 Spring 数据 r2dbc 中替换 @PrePersist

java - 简单加密

java - 社交网络架构、C++ Clients Neo4j 数据库之间有什么关系?

java - 分布式 OSGi - 跨所有容器管理 bundle 的正确方法是什么?

java - Selenium IE 驱动程序无法在 VPN 上运行

java - 如何从大字符串中逐行读取?