java - Java 8 代码连接一个不重复的字符串列表
问题描述
我有一个Hit
类和一个List<Hit>
包含以下内容的类:
{{id=1, list="EU"}, {id=2, list="EU,OF,UN"}}
如何在不重复出现的情况下获得一些连接列表?
我试过这样的事情:
Set<String> sourceList = alertHit.stream()
.map(Hit::getList)
.collect(Collectors.toSet());
但我的sourceList
Set
. 我怎样才能在我的 中只获得“EU,OF,UN” Set
?谢谢!
解决方案
如果Hit::getList
返回一个String
逗号分隔的元素,则必须拆分该String
.
这将产生一个String[]
可用于产生一个Stream<String>
.
最后,您需要使用flatMap
而不是以map
获得Stream
所有这些String
s 的单位。那就是Stream
你应该收集到一个Set
.
Set<String> sourceList =
alertHit.stream()
.flatMap(h -> Arrays.stream(h.getList().split(",")))
.collect(Collectors.toSet());
推荐阅读
- ios - 将背景颜色和占位符图像合并到一张图像中
- wordpress - 在wordpress中的联系表格7中以短URL传递参数
- storage - 如何设置本地存储的配额覆盖openstack中的所有nova计算
- css - Adding shadow to angular material tooltip arrow
- javascript - 从js文件中获取迭代变量
- c# - 将程序集引用添加到项目后,Window.xaml.cs 上的所有代码都出现错误
- javascript - 如何使用 D3.js 在节点之间绘制链接?
- java - Java fx 用户输入如何插入数据库
- docker - 网关 ThingsBoard 配置到 HiveMQ MQTT 代理
- symfony - Symfony 5.3.1 模型字段对当前用户的默认值