Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用流api将单独的单词字符串转换为单独的列表元素_Java_Java 8_Java Stream - Fatal编程技术网

Java 如何使用流api将单独的单词字符串转换为单独的列表元素

Java 如何使用流api将单独的单词字符串转换为单独的列表元素,java,java-8,java-stream,Java,Java 8,Java Stream,尝试学习流API。 我有一个字符串列表,如下所示: 118.111.97.113 119.122.122.122 122.122.122.97 122.122.122.99 122.122.122.100 我需要按“”将其拆分,并将单独的数字作为单独的值放入新集合。 像这样: 118 111 97 113 119 ... 我知道flatMap方法,它可以假设一个值并返回多个值,但是如何正确使用它,没有人知道。你能帮我或给我一些建议吗 谢谢 你可以这样做 List<String>

尝试学习流API。 我有一个字符串列表,如下所示:

118.111.97.113
119.122.122.122
122.122.122.97
122.122.122.99
122.122.122.100
我需要按“
”将其拆分,并将单独的数字作为单独的值放入新集合。 像这样:

118
111
97
113
119
...
我知道
flatMap
方法,它可以假设一个值并返回多个值,但是如何正确使用它,没有人知道。你能帮我或给我一些建议吗

谢谢

你可以这样做

List<String> initial;
List<String> all = initial.stream().flatMap(str -> Arrays.stream(str.split("\\.")))
                                   .collect(Collectors.toList());
列表首字母;
List all=initial.stream().flatMap(str->Arrays.stream(str.split(“\\”))
.collect(Collectors.toList());

仅以下几行:

Pattern p = Pattern.compile("\\.");
yourStreamOfStrings.flatMap(p::splitAsStream)
            .collect(Collectors.toList());

flatMap
想象成用种子挤压一个水果,你得到一个水果作为输入,很多种子作为输入output@Eugene噢!!!好吃@Eugene
“\\。”
是一个单字符分隔符,它的
字符串。split
根本不会创建
模式。@Holger这不是一个内部细节吗?:)@Eugene与假设每次创建
模式
都很昂贵或者
String.split后没有
模式
缓存没有什么不同。有时,当你必须在两个等价的变体之间做出选择时,你必须考虑从实现中得到什么合理的东西,以及共同实现(S)实际上做了什么……@尤金,我做了一些快速测试,列出了OK 100K ELEM,50次迭代,并且在构建之前没有太快。有时甚至是slower@azro那么我想这是一些热身的问题,而不是哪一个更慢/更快的迹象