gpt4 book ai didi

java - Java 中另一个对象内的对象循环

转载 作者:行者123 更新时间:2023-12-01 06:13:23 24 4
gpt4 key购买 nike

我不知道如何用文字提问,所以这里有一个例子:

建筑类有这样的数据:

Map<Season, List<Info>> infosBySeason = new TreeMap<Season, List<Info>>();

我想做的是循环每个建筑物,按季节信息打印。

喜欢:

Season 1 :
Building 1 :
Info 1, Info 2....
Building 2 :
Info 1, Info 2....

Season 2 :
Building 1 :
Info 1, Info 2....
Building 2 :
Info 1, Info 2....

我应该将季节作为外部类并为每个季节复制建筑物吗?

有没有好的方法来处理类之间的这种“多对多”关系?

最佳答案

这将解决问题,seasonMap 按照您需要的顺序包含值(假设类实现 Comparable)

Map<Season, Map<Building, List<Info>>> seasonMap = new TreeMap<>();
for (Building building : buildings) {
for (Map.Entry<Season, List<Info>> e : building.infosBySeason.entrySet()) {
Season season = e.getKey();
List<Info> infos = e.getValue();
if (!seasonMap.containsKey(season)) {
seasonMap.put(season, new TreeMap<>());
}

seasonMap.get(season).put(building, infos);
}
}

Should I put Season as the outer class and duplicates Building for each Season?

坏主意,您很可能会陷入难以维护的循环依赖关系。

Is there a nice way to deal with this kind of "many-to-many" relationship between classes?

设计更好的数据模型是简化代码的一种方法。如果数据模型有效地解决了你的所有需求,你可以说它是好的。如果您将使用您在 99% 的时间中描述的循环,那么最好将 Building 设为 Season 类的成员并反转逻辑。

关于java - Java 中另一个对象内的对象循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30849682/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com