我有一个包含字符串的列表.如何在每个上使用 .split() (与 forEach)?



我不能使用像for/while这样的循环。

我有这样的列表:

List<String> listStrings = new ArrayList<String>(); 
listStrings.add("12 14 15"); 
listStrings.add("15 13 17"); 
listStrings.add("14 15 13"); 

如何在不使用的情况下将此列表中的 .split(( 拆分每个字符串 对于/while循环?

新列表 newList 应该是什么样子的:

List<String> newList {"12", "14, "15", "15", ...}

("为什么你不能使用像for/while这样的循环"->它用于任务,我必须练习使用流。

提前谢谢。

你不需要任何循环来创建列表,只需收集流

Stream.of("12 14 15", "15 13 17", "14 15 13")  // Stream<String>
.map(s -> s.split(" "))  // Stream<String[]>
.flatMap(Stream::of) // Stream<String>
.collect(Collectors.toList());  // List<String>

如果必须以列表开头,请将第一行替换为listStrings.stream()

在此处查看示例

否则,您只需在 forEach 中add

Stream.of("12 14 15", "15 13 17", "14 15 13").
.map(s -> s.split(" "))  // Stream<String[]>
.flatMap(Stream::of) // Stream<String>
.forEach(s -> newList.add(s));

最新更新