【发布时间】:2020-04-07 20:18:48
【问题描述】:
所以我就这样声明了
ArrayList arr = new ArrayList();
然后当我想添加元素时,我会添加一个这样的数组
arr.add(new double []{5.0,2});
但是我在访问数组元素时遇到了问题,我写了这段代码但它不起作用
arr.get(0) [0];
【问题讨论】:
标签: java arraylist data-structures
所以我就这样声明了
ArrayList arr = new ArrayList();
然后当我想添加元素时,我会添加一个这样的数组
arr.add(new double []{5.0,2});
但是我在访问数组元素时遇到了问题,我写了这段代码但它不起作用
arr.get(0) [0];
【问题讨论】:
标签: java arraylist data-structures
你应该如下声明它:
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。
双[]
【讨论】:
类型参数部分由尖括号 () 分隔,跟在类名之后。它指定类型参数(也称为类型变量)T1、T2、...和Tn。
…
类型变量可以是您指定的任何非原始类型:任何类类型、任何接口类型、任何数组类型,甚至是其他类型变量。
Java 类中使用的泛型类型不接受原语,因此,您应该使用 Integer 而不是 int;布尔值而不是布尔值;双而不是双。虽然,Java 中的数组是一个对象,也可以接受一个基元数组。
ArrayList<Double[]> arr = new ArrayList<>();
arr.add(new Double[] {5., 0., 2.);
【讨论】:
double 添加到List < double[] >。检索到时,调用getClass 会显示double 类型的数组。所以没有自动装箱生效,也不需要Double。 double 的数组成功存储在ArrayList< double[] > 中。在Answer by Majed Badawi 中查看我的示例代码。