有没有办法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
.
试试这个:
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));
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);
试试这个,
ArrayList<Double> numb= new ArrayList<Double>(Arrays.asList(1.38, 2.56, 4.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));
您可以使用 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));
1) “不必要的复杂”是恕我直言,在将其元素添加到 ArrayList 之前首先创建一个不可修改的列表。
2)解决方案与问题完全匹配:“有没有办法用双精度类型定义 ArrayList? ”
双重类型:
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>() );
}
} ) );
…这将创建与其 Java 1.8 短格式相同的紧凑和快速编译:
ArrayList<Double> list = DoubleStream.of( arr ).boxed().collect(
Collectors.toCollection( ArrayList::new ) );
试试这个:
List<Double> l1= new ArrayList<Double>();
l1.add(1.38);
l1.add(2.56);
l1.add(4.3);
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>() );
}
} ) );