我有一个包含字符串和字符串列表的流,我想获取所有值作为字符串列表。
无论如何要通过一些流操作来做到这一点?
Stream stream = Stream.of("v1", Arrays.asList("v2, v3"));
最佳答案
通常,您不会在列表中混合使用这些不同的类型,但是可以从中获得所需的结果。每个单个字符串都可以转换为一个字符串流,每个字符串列表都可以转换为多个字符串流;然后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());
您将收到
unchecked cast
警告,但这就是在一个容器中混合使用不同类型的警告。
关于java - 从流中获取字符串列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44888474/