gpt4 book ai didi

java - 当一个对象有多个内部集合时,我如何从外部迭代它们?

转载 作者:行者123 更新时间:2023-12-01 15:12:05 26 4
gpt4 key购买 nike

不久前,我为导航图编写了一个编辑器,用于表示建筑物内部(和之间)的路径。它存储在 Graph 类中。

例如,边缘存储在每层楼的一个集合中,另外还存储在楼层之间的一个集合中。

要绘制它们(仅限当前楼层)或将它们保存到磁盘(全部),我需要从外部获取它们。为此,我实现了 callWithAllEdges 和 callWithAllEdgesIn 等方法,后者采用参数来指定楼层。

这些方法采用一个仿函数(至少我这么调用它),然后用边调用它。

这就是绘制一层楼的边缘的样子:

graph.callWithAllEdgesIn(id, new Functor<Edge>() {
public void call(Edge e) {
drawEdge(g,e);
}
});

当然,这有点啰嗦。可能是java的问题,而不是我的解决方案的问题,但我不知道。

我猜,另一种方法是创建一个方法,将对所有需要的边的引用放入一个新集合中,然后对其进行迭代。但对我来说似乎有点不对。

我的问题是:我怎样才能更好地解决这个问题?

最佳答案

您当前的设计非常合理。另一种选择是提供 Iterable/Iterator。这样您就不需要将所有内容复制到新列表中,而是可以懒洋洋地单步浏览内部列表。

关于java - 当一个对象有多个内部集合时,我如何从外部迭代它们?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12202985/

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