首页 > 解决方案 > 将列表转换为可能

问题描述

我想将 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-8java-streamrx-java

解决方案


推荐阅读