【问题标题】:How to creat an ArrayList of array如何创建数组的ArrayList
【发布时间】:2020-04-07 20:18:48
【问题描述】:

我想在 java 中创建一个数组列表

所以我就这样声明了

ArrayList arr = new ArrayList();

然后当我想添加元素时,我会添加一个这样的数组

arr.add(new double []{5.0,2});

但是我在访问数组元素时遇到了问题,我写了这段代码但它不起作用

arr.get(0) [0];

【问题讨论】:

    标签: java arraylist data-structures


    【解决方案1】:

    你应该如下声明它:

    List<double[]> arr = new ArrayList<>();
    

    这里是使用这种数组列表的示例代码。

    List < double[] > arr = new ArrayList <>();
    
    double[] anArray = new double[ 10 ];
    arr.add( anArray );
    
    System.out.println( arr.get( 0 ).getClass().getCanonicalName() );
    

    看到这个code run live at IdeOne.com

    双[]

    【讨论】:

      【解决方案2】:

      根据Java tutorial by Oracle

      类型参数部分由尖括号 () 分隔,跟在类名之后。它指定类型参数(也称为类型变量)T1、T2、...和Tn。

      类型变量可以是您指定的任何非原始类型:任何类类型、任何接口类型、任何数组类型,甚至是其他类型变量。

      Java 类中使用的泛型类型不接受原语,因此,您应该使用 Integer 而不是 int;布尔值而不是布尔值;双而不是双。虽然,Java 中的数组是一个对象,也可以接受一个基元数组。

      ArrayList<Double[]> arr = new ArrayList<>();
      arr.add(new Double[] {5., 0., 2.);
      

      【讨论】:

      • 我相信您误读了该文档,并且您的答案不正确。虽然不接受原语,但包含原语的数组被接受。请注意您引用的文档中的短语“任何数组类型”。我尝试将原始数组double 添加到List &lt; double[] &gt;。检索到时,调用getClass 会显示double 类型的数组。所以没有自动装箱生效,也不需要Doubledouble 的数组成功存储在ArrayList&lt; double[] &gt; 中。在Answer by Majed Badawi 中查看我的示例代码。
      猜你喜欢
      • 2013-08-19
      • 2013-07-05
      • 2010-09-14
      • 1970-01-01
      • 1970-01-01
      • 2011-05-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多