gis*_*ara 18 java arrays collections arraylist
当我尝试将双数组转换为Double arrayList时,我收到以下错误:
线程"main"中的异常java.lang.ClassCastException:[D无法强制转换为java.lang.Double
以下是我的代码.
double [] firstValueArray ;
Run Code Online (Sandbox Code Playgroud)
ArrayList <Double> firstValueList = new ArrayList (Arrays.asList(firstValueArray));
我将此列表与另一个列表进行比较,并将结果分配给另一个双变量.
请让我知道此错误的原因.
Boz*_*zho 36
唉,Arrays.asList(..)不适用于原语.Apache commons-lang有
Double[] doubleArray = ArrayUtils.toObject(durationValueArray);
List<Double> list = Arrays.asList(doubleArray);
Run Code Online (Sandbox Code Playgroud)
Spa*_*ker 21
使用Java 8 Streams API可以实现
DoubleStream.of(doublesArray).boxed().collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)
如果需要返回一个ArrayList实现,那么请使用
DoubleStream.of(doublesArray).boxed().collect(Collectors.toCollection(ArrayList::new));
Run Code Online (Sandbox Code Playgroud)
这种单行程不需要任何额外的库.
Sea*_*oyd 20
番石榴的版本更短:
List<Double> list = Doubles.asList(doubleArray);
Run Code Online (Sandbox Code Playgroud)
参考:
注意:这是一种varargs方法.可以使用相同类型的数组(但不是相应的盒装/非盒装类型!!)调用所有varargs方法.这两个电话是等价的:
Doubles.asList(new double[]{1d,2d});
Doubles.asList(1d,2d);
Run Code Online (Sandbox Code Playgroud)
此外,Guava版本不进行完整遍历,它是原始数组的实时List视图,仅在访问它们时将原语转换为Objects.
感谢 bestsss 的评论,这应该是答案:
ArrayList<Double> firstValueList = new ArrayList<Double>();
for(double d : firstValueArray) firstValueList.add(d);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
35150 次 |
| 最近记录: |