我不能使用像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));