我正在尝试初始化一个ArrayList,以便稍后在我的代码中使用,但似乎它不接受双打。
public ArrayList<double> list = new ArrayList<double>();
它在'double'下给出了一个错误,在“令牌上的语法错误”中说“double”,此符号后面的尺寸“
答案 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(和其他泛型类)只接受对象引用作为类型,而不是原始数据类型。但是,有一些包装类允许您使用基元进行模拟:Boolean
,Byte
,Short
,Character
,Integer
,Long
, Float
和Double
;
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
,反之亦然。您可能需要明确指定在处理整数类型列表时是否要将参数视为int
或Integer
,以消除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
。
无需预先确定元素数量 前面,只需添加到我们需要的数组