Spo*_*ngi 6 java java-8 java-stream
是否存在使用流将String解析为Integer的更好方法:
String line = "1 2 3 4 5";
List<Integer> elements = Arrays.stream(line.split(" ")).mapToInt(x -> Integer.parseInt(x))
.boxed().collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)
Era*_*ran 10
如果直接将String解析为Integer,则可以消除一步:
String line = "1 2 3 4 5";
List<Integer> elements = Arrays.stream(line.split(" ")).map(Integer::valueOf)
.collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)
或者你可以通过创建一个int数组而不是一个数组来坚持原始类型,从而提供更好的性能List<Integer>:
int[] elements = Arrays.stream(line.split(" ")).mapToInt(Integer::parseInt).toArray ();
Run Code Online (Sandbox Code Playgroud)
你也可以替换
Arrays.stream(line.split(" "))
Run Code Online (Sandbox Code Playgroud)
同
Pattern.compile(" ").splitAsStream(line)
Run Code Online (Sandbox Code Playgroud)
不过,我不确定哪个更有效率.