【发布时间】:2018-11-16 07:41:24
【问题描述】:
我有一个资源对象列表。资源对象定义为:
class Resource {
String ip;
String subnet;
// other properties...
}
我需要一个像地图这样的数据结构,其中键是一个子网中的随机资源,值是其他子网中所有资源的列表。
例如,如果S 表示子网,R 表示资源,则列表有:
S1R1, S1R2, S2R1, S2R2, S3R1 and S3R2
预期输出是:
S1R1 -> S2R1, S2R2, S3R1, S3R2
S2R2 -> S1R1, S1R2, S3R1, S3R2
S3R1 -> S1R1, S1R2, S2R1, S2R2
我尝试使用流并收集基于子网的分组,不知道如何从这里开始。
Map<String, Set<Resource>> grouped = resourceList.stream()
.collect(Collectors.groupingBy(Resource::getSubnet, Collectors.toSet()));
【问题讨论】:
-
请详细说明预期结果。
-
预期结果是应该有一个映射或类似结构,其中键是一个子网中的任意随机资源,值是所有其他子网中所有资源的列表。
标签: java java-8 java-stream