Java 使用Arrays.asList从数组创建列表

Java 使用Arrays.asList从数组创建列表,java,arrays,Java,Arrays,显示下面的代码从数组创建一个列表 double[] features = new double[19]; List<Double> list = new ArrayList(Arrays.asList(features)); double[]功能=新的double[19]; List List=newarraylist(Arrays.asList(features)); 我希望list包含19个元素,每个元素都是0.0。但是,在运行上述代码之后,列表仅包含1个元素,即[0.0,0

显示下面的代码从数组创建一个
列表

double[] features = new double[19];
List<Double> list = new ArrayList(Arrays.asList(features));
double[]功能=新的double[19];
List List=newarraylist(Arrays.asList(features));

我希望
list
包含19个元素,每个元素都是0.0。但是,在运行上述代码之后,
列表
仅包含1个元素,即
[0.0,0.0,…,0.0]
。我正在运行Java 6,不确定这是否相关。

不要使用。您的
功能
为空。而且您不能创建基本类型的集合
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);

Double[]功能=新的Double[19];// 每个数组也是一个对象。调用
数组。asList
创建一个包含单个元素的列表,该元素是整个数组。因此,您正在创建一个
列表
,而不是
列表
。由于您使用的是原始类型,因此编译器没有发现此错误,仅使用警告消息进行编译。如果您键入了
newarraylist(Arrays.asList(features))
,那么您的程序就不会编译。

钻石操作符
是在Java7中引入的,但OP声明他正在使用Java6@halex谢谢已编辑。
您的功能是空的。
不是真的,本例不需要填充该数组。(由于错误的打字错误而重新发布)@Tom,否则它将是19个空值。:D对,您必须修复类型以更正代码,但已经忘记了这一点。但是“他的”
功能并不是空的:P.我不知道你的问题为什么被重新打开。我注意到它没有使用
newarraylist(Arrays.asList(features))
编译,但无法理解问题所在。谢谢你指出这一点。