双打的Java ArrayList

时间:2013-07-05 04:43:28

标签: java arraylist double

有没有办法定义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后需要维度。

9 个答案:

答案 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)

使用guava

Doubles.asList(1.2, 5.6, 10.1);

或不可变列表

ImmutableList.of(1.2, 5.6, 10.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>() );
      }
    } ) );