This post表明以下代码会从数组中创建List
。
double[] features = new double[19];
List<Double> list = new ArrayList(Arrays.asList(features));
我希望list
包含19个元素,每个元素都是0.0。但是,运行上面的代码后,list
只包含1个元素,即[0.0, 0.0, ..., 0.0]
。我正在运行Java 6,不确定这是否相关。
答案 0 :(得分:2)
不要使用Raw Types。您的features
为空。而且您无法制作基本类型double
的集合,您需要Double
。
Double[] features = new Double[19]; // <-- an Object type
Arrays.fill(features, Double.valueOf(1)); // <-- fill the array
List<Double> list = new ArrayList<Double>(Arrays.asList(features));
System.out.println(list);
答案 1 :(得分:2)
每个数组也是一个对象。您调用Arrays.asList
创建一个包含单个元素的List,这是整个数组。因此,您要创建一个List<double[]>
,而不是一个List<Double>
。由于您使用的是原始类型,因此编译器未发现此错误并仅使用警告消息进行编译。如果您输入new ArrayList<Double>(Arrays.asList(features))
,则您的程序将无法编译。