有没有办法定义ArrayList
类型的double
?我试过了两个
ArrayList list = new ArrayList<Double>(1.38, 2.56, 4.3);
和
ArrayList list = new ArrayList<double>(1.38, 2.56, 4.3);
第一个代码显示构造函数ArrayList<Double>(double, double, double)
未定义,第二个代码显示double
后需要维度。
答案 0 :(得分:23)
试试这个:
List<Double> list = Arrays.asList(1.38, 2.56, 4.3);
返回固定大小列表。
如果您需要可扩展列表,请将此结果传递给ArrayList
构造函数:
List<Double> list = new ArrayList<>(Arrays.asList(1.38, 2.56, 4.3));
答案 1 :(得分:20)
ArrayList list = new ArrayList<Double>(1.38, 2.56, 4.3);
需要更改为:
List<Double> list = new ArrayList<Double>();
list.add(1.38);
list.add(2.56);
list.add(4.3);
答案 2 :(得分:4)
试试这个,
ArrayList<Double> numb= new ArrayList<Double>(Arrays.asList(1.38, 2.56, 4.3));
答案 3 :(得分:3)
您遇到了问题,因为您无法构建ArrayList
并同时填充它。您需要创建它,然后手动填充它:
ArrayList list = new ArrayList<Double>();
list.add(1.38);
...
或者,如果它对您来说更方便,您可以从包含您的值的基本数组中填充ArrayList
。例如:
Double[] array = {1.38, 2.56, 4.3};
ArrayList<Double> list = new ArrayList<Double>(Arrays.asList(array));
答案 4 :(得分:2)
您可以使用Arrays.asList获取一些列表(不一定是ArrayList),然后使用addAll()将其添加到ArrayList:
new ArrayList<Double>().addAll(Arrays.asList(1.38L, 2.56L, 4.3L));
如果你正在使用Java6(或更高版本),你也可以使用另一个列表的ArrayList构造函数:
new ArrayList<Double>(Arrays.asList(1.38L, 2.56L, 4.3L));
答案 5 :(得分:1)
试试这个:
List<Double> l1= new ArrayList<Double>();
l1.add(1.38);
l1.add(2.56);
l1.add(4.3);
答案 6 :(得分:1)
答案 7 :(得分:1)
1)“ 不必要地复杂”是恕我直言,它会在将其元素添加到ArrayList之前首先创建一个不可修改的List。
2)该解决方案与以下问题完全匹配:“ 是否可以使用双精度类型定义ArrayList?”
双重类型:
double[] arr = new double[] {1.38, 2.56, 4.3};
ArrayList:
ArrayList<Double> list = DoubleStream.of( arr ).boxed().collect(
Collectors.toCollection( new Supplier<ArrayList<Double>>() {
public ArrayList<Double> get() {
return( new ArrayList<Double>() );
}
} ) );
…这将产生与其Java 1.8简短形式相同的紧凑而快速的编译:
ArrayList<Double> list = DoubleStream.of( arr ).boxed().collect(
Collectors.toCollection( ArrayList::new ) );
答案 8 :(得分:-1)
double[] arr = new double[] {1.38, 2.56, 4.3};
ArrayList<Double> list = DoubleStream.of( arr ).boxed().collect(
Collectors.toCollection( new Supplier<ArrayList<Double>>() {
public ArrayList<Double> get() {
return( new ArrayList<Double>() );
}
} ) );