【发布时间】:2020-11-24 10:55:00
【问题描述】:
我在迭代嵌入在另一个地图中的对象内的列表时遇到问题。
我的目标是遍历这个列表并生成一个 map
public class ModelBO {
private String id;
private String name;
private String version;
private Map<String, FolderBO> folderValues = null;
}
public class FolderBO {
private String id;
private String name;
private String type;
private Map<String, String> properties;
private List<ElementBO> elements = new ArrayList<ElementBO>();
}
public class ElementBO {
private String id;
private String name;
private String type;
}
我在上面看到我需要通过迭代文件夹Bo 内的elementList 来从elementBo 创建一个带有map
我已经编写了以下代码。
Map<String,String> elementMap =
UniModelBO.getInstance().getFolderValues().entrySet().stream()
.filter(entrySet -> entrySet.getKey()!="relations")
.map(entrySet -> entrySet.getValue().getElements()::stream)
.collect(Collectors.toMap(ElementBO::getName, ElementBO::getId));
UniModelBO 是为 ModelBo 创建单例对象的实用程序类。
【问题讨论】:
-
什么是
UniModelBO.getInstance().getFolderValues() -
提供一组示例数据和预期结果会很有帮助。另外,为什么不尝试使用传统循环来实现您的目标呢?如果有必要,翻译成流要容易得多。
-
它是一个创建 ModelBo 的实用单例类
标签: java-stream iteration