Nat*_*enn 5 java java-8 java-stream
我正在尝试使用新的流功能将字符串列表扩展为更长的列表.
segments = segments.stream() //segments is a List<String>
.map(x -> x.split("-"))
.collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)
然而,List<String[]>()这会产生一个,当然不会编译.如何将最终流简化为一个列表?
Tag*_*eev 10
用途flatMap:
segments = segments.stream() //segments is a List<String>
.map(x -> x.split("-"))
.flatMap(Arrays::stream)
.collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)
您还可以使用Pattern.splitAsStream以下方法删除中间数组
segments = segments.stream() //segments is a List<String>
.flatMap(Pattern.compile("-")::splitAsStream)
.collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)