【发布时间】:2018-01-02 11:09:37
【问题描述】:
我有这个字符串:
((39.4189453125 37.418708616699824,42.0556640625 37.418708616699824,43.4619140625 34.79181436843146,38.84765625 33.84817790215085,39.4189453125 37.418708616699824))
我想将其转换为Double [] java 数组。
我试过了:
String[]tokens = myString.split(" |,");
Arrays.asList(tokens).stream().map(item -> Double.parseDouble(item)).collect(Collectors.toList()).toArray();
有没有比数组-列表-数组转换更好更高效的方法?
【问题讨论】:
-
您不需要将它们收集到一个列表中。您可以使用
toArray(Double[]::new)从流直接转到数组 -
另外,如果您需要
Doubles 而不是doubles,您可以使用Double.valueOf而不是Double.parseDouble。 -
避免使用
Double,它会浪费大量内存并且速度会慢很多。 -
@khelwood 我可以把它加倍吗?
-
@EladBenda2 是的,如果您使用
mapToDouble(Double::parseDouble),您将获得DoubleStream。