如何使用Java 8 Stream将String[][]转换为double[][]二维数组
错误原因
你的代码中,外层Stream调用无参toArray()方法时默认返回Object[]类型,无法直接作为double[][]使用,所以运行结果不符合预期。
正确实现代码
double[][] result = Arrays.stream(strArr) .map(strRow -> Arrays.stream(strRow).mapToDouble(Double::parseDouble).toArray()) .toArray(double[][]::new);
实现说明
- 内层逻辑
Arrays.stream(strRow).mapToDouble(Double::parseDouble).toArray()本身是正确的,可以将单行的String[]转换为double[] - 外层Stream的元素为逐个转换好的
double[]对象,调用toArray(double[][]::new)时,会根据Stream内元素的数量生成对应长度的double[][]数组,类型完全匹配
内容的提问来源于stack exchange,提问作者Ham Ozymandias
相关产品推荐
相关产品推荐

