poy*_*ger 2 java java-8 java-stream
我有一个包含字符串和字符串列表的流,我想把所有值作为字符串列表.无论如何用一些流操作来做到这一点?
Stream stream = Stream.of("v1", Arrays.asList("v2, v3"));
Run Code Online (Sandbox Code Playgroud)
通常你不会在列表中混淆这些不同的类型,但你可以从中得到你想要的结果; 每个单个字符串可以转换为一个字符串的流,每个字符串列表可以转换为多个字符串的流; 然后flatMap将所有流变平为一个单独的字符串流.
List<String> strings = l.stream()
.flatMap(o -> {
if (o instanceof List) {
return ((List<String>) o).stream();
}
return Stream.of((String) o);
})
.collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)
你会得到一个unchecked cast警告,但这就是你在一个容器中混合不同类型的结果.
| 归档时间: |
|
| 查看次数: |
114 次 |
| 最近记录: |