【发布时间】:2013-01-15 15:00:49
【问题描述】:
我有以下示例代码,它由 3 个嵌套的 for 循环组成。
for(Continent continent : continentList)
{
for(Country country : continent.getCountries())
{
for(City city : country.getCities())
{
//Do stuff with city objects
}
}
}
有没有办法使用 Guava 和迭代器来模拟这种嵌套的 for 循环?我一直在尝试找到一个合适的例子,但运气不佳,我想知道是否有人可以帮助我?我的一位同事提到使用过滤器。
编辑:修复示例代码中的小错误
【问题讨论】:
-
你可以嵌套你的映射。恕我直言,嵌套循环可能更简单,至少对于外部循环。
-
在第 3 行,不应该是“continent.getCountries()”吗?
-
您可以使用 guava "transform" 和 "concat" 创建一个
三元组列表,然后对其进行迭代,但至少使用 Java 7,代码将是相当丑陋。我会留在嵌套循环中。