java-8 - 将列表转换为可能
问题描述
我想将 List< Long> 转换为 Maybe>。这是示例。
class Structure
{
Long id;
Long data;
}
class makeStructure{
Maybe<Structure> getStructure(Long id)
{
return someMaybe;
}
}
如果原始数据如下所示。
1.结构{id:100,数据:200}
2.结构{id:101,数据:201}
我想将其转换为包含以下两个数据的 Maybe< Map< Long, Structure>>。(结构 id 用作键)
1. (100, Structure{ id : 100, data :200})
2. (101, Structure{ id : 101, data :201})
我尝试了类似下面的方法。
List<Long> list;//somethig in it
makeStructure makeStructrue = new makeStructure();
Map<Long, Structure> result = list.stream()
.map(i->makeStructrue.getStructure(i))
.map(v->v.blockingGet())
.collect(Collector.toMap(k->k.getId(),k->k);
return Maybe.just(result);
但这不是我想要的结果,有两个原因。首先,我使用了blockGet方法其次,collect的结果是Map而不是Maybe。我想知道只使用 Maybe.just(result) 确保相同的结果。
为了获得良好的性能,我尝试不使用 blockingGet();
制作干净的代码有什么好主意吗?
解决方案
推荐阅读
- java - Json 到 Graphql 的转换
- html - 如何在 asp.net 项目中使用 html 标签
- java - 在春季重试中仅处理自定义异常
- scikit-learn - 如何在 python 中通过三个步骤定义管道:预处理、预测和后处理?
- java - 检查 Vector 的值是否在 Set 中
- java - Admob 横幅位置错误
- python - Python exe用户输入自动输入
- javascript - 使用 map 的并行请求和使用 promise.all 的 for 循环,然后
- ftp - 通过浏览器连接的 FTP 服务器,但在 FileZilla 中不工作
- google-cloud-speech - 谷歌语音转文本上的 504