根据Arrays.asList()的方法签名,它返回传入参数的类型列表。
public static <T> List<T> asList(T... a)
例如:
double[] array=new double[]{1,2,3};
List<double[]> list=Arrays.asList(array); // Here T is `double[]` List of size 1
...
double[][] array = new double[][] { { 1, 2, 3 }, { 4, 5, 6 } };
List<double[]> list=Arrays.asList(array); // Here T is `double[]` List of size 2
...
List<Double> list=Arrays.asList(1.0,2.0,3.0); // Here T is double List of size 3
根本原因:
由于数组本身是一个对象,并且在您的情况下double[]
被视为单个对象,而不是根据Generic的 double 数组,因此List<double[]>
返回而不是List<Double>
.
解决方案 1
您可以通过简单的经典代码来解决它:
double[] array = new double[] { 1, 2, 3 };
List<Double> list = new ArrayList<Double>();
for (double d : array) {
list.add(d);
}
解决方案 2
只需将方法的返回类型stats.getValues()
从更改double[]
为Double[]
Double[] array = new Double[] { 1.0, 2.0, 3.0 };
List<Double> list = Arrays.asList(array);