【发布时间】:2020-04-16 21:01:10
【问题描述】:
我有一个 Java 地图:
Map<String, Set<EntityObject>> itemGroupsMap
class EntityObject {
boolean isParent;
String groupId;
}
现在我想将 itemGroupsMap 地图 --- 转换为 ---:
Map<EntityObject, Set<EntityObject>> parentChildMap.
要做的逻辑是itemGroupsMap -> Set -> 在这个Set中的每个条目都会有一个EntityObject,它将是一个父级(EntityObject.isParent=1)。因此,对于地图中的每个条目,我必须找到父 EntityObject 并将其设为 parentChildMap 的键,并将 仅其余的 entitiObjects 作为 Set/List键。
我尝试过使用 2 个 foreach 循环,而且我对 Java 8 还很陌生,所以正在研究如何使用流来减少我的代码?
我查看了 Collectors.partitioningBy,但它创建了 2 个具有 0、1 个键的映射。我真的不需要那个。
有什么建议吗?
【问题讨论】:
-
我需要更多信息才能确定。您当前的地图包含多少个键(字符串部分)?一个或多个。结果映射将包含多少个键?一个或多个。
-
您当前的地图包含多少个键(字符串部分)? - 许多
-
生成的映射将包含多少个键? - 许多 -> 等于原始地图的数量 -> 每个条目都被转换为结果地图
标签: java object java-8 hashmap set