使用双精度初始化ArrayList

时间:2014-05-08 08:24:21

标签: java

我正在尝试初始化一个ArrayList,以便稍后在我的代码中使用,但似乎它不接受双打。

public ArrayList<double> list = new ArrayList<double>();

它在'double'下给出了一个错误,在“令牌上的语法错误”中说“double”,此符号后面的尺寸“

4 个答案:

答案 0 :(得分:14)

ArrayList不接受原始数据类型(即double)。请改用包装类(即Double):

public ArrayList<Double> list = new ArrayList<>();

此外,从Java 7开始,无需为Double类指定它,它会自动计算出来,因此您只需为ArrayList指定<>

答案 1 :(得分:5)

您需要使用Wrapper class double Double。尝试

public ArrayList<Double> list = new ArrayList<Double>();

答案 2 :(得分:3)

在Java中,ArrayLists(和其他泛型类)只接受对象引用作为类型,而不是原始数据类型。但是,有一些包装类允许您使用基元进行模拟:BooleanByteShortCharacterIntegerLongFloatDouble;

public ArrayList<Double> list = new ArrayList<Double>(); 
//or "public ArrayList<Double> list = new ArrayList<>();" in Java 1.7 and beyond

里面的值是&#34; autoboxed&#34;和&#34; autounboxed&#34;因此,您可以毫无问题地将doubles视为Doubles,反之亦然。您可能需要明确指定在处理整数类型列表时是否要将参数视为intInteger,以消除remove(int index)和{{1}之类的情况之间的歧义}。

答案 3 :(得分:1)

public ArrayList<Double> doubleList = new ArrayList<>();

从Java 1.7开始,您不需要在initializing ArrayList时编写Double,因此您可以选择在new ArrayList<>(); or new ArrayList<Double>();中编写Double,否则它不是强制性的。

也称为dynamic array

无需预先确定元素数量 前面,只需添加到我们需要的数组