当我注意到一些奇怪的东西时,我正在学习如何使用java 8流.
Arrays.stream() 有浮动数组的所有方法:
Arrays.stream(int[]) : IntStreamArrays.stream(long[]) : LongStreamArrays.stream(double[]) : DoubleStream类似地,有int,double等的Stream实现,但不是浮点数:
IntStreamLongStreamDoubleStream这有什么理由吗?
使用浮点流的推荐方法是什么?
我有一个字符串数组:
String[] guaranteedOutput = Arrays.copyOf(values, values.length,
String[].class);
Run Code Online (Sandbox Code Playgroud)
所有String值都是数字.数据应转换为Double[].
问题
Java中是否有一个单行解决方案来实现这一点,或者我们需要循环并将每个值转换为Double?
我有一个数组String[],我想转换为数组Float[]
考虑e是String[]提供的通道HttpServletRequest::getParameterMap().我试过了:
Arrays.stream(e.getValue()).mapToDouble(Float::parseFloat).boxed().toArray(Float[]::new));
Run Code Online (Sandbox Code Playgroud)
得到例外:
java.lang.ArrayStoreException:java.lang.Double
那么我试过:
Arrays.stream(e.getValue()).mapToDouble(Double::parseDouble).boxed().toArray(Float[]::new));
Run Code Online (Sandbox Code Playgroud)
结果相同.