java - 嵌套集合的迭代器

标签 java collections iterator

我在 Java 中有两个数据结构:
一个称为 DebateAssignment 并具有 5 个 DebateTeam 对象,每个对象都与一个特定的枚举相关联,其中包括

{JUDGE, PROP1, PROP2, OP1, OP2}

在另一个类中我使用 List<DebateAssignment>我想创建一个指向特定 DebateAssignment 中特定 DebateTeam 的迭代器,我希望它遍历所有团队的所有任务,无缝地从一个任务转到另一个任务。

我该怎么做呢?

最佳答案

一种方法,使用 google-collections/guava :

return Iterables.concat(Iterables.transform(assignments,
    new Function<DebateAssigment, Collection<DebateTeam>>() {
      public Collection<DebateTeam> apply(DebateAssignment assignment) {
        return assignment.getDebateTeams();
      }
    }));

另一种方法是将数据存储为 Multimap<DebateAssignment, DebateTeam> ,然后简单地遍历 values()entries()看法。该数据结构不会对 JUDGE/PROP1/等建模。协会,虽然。

关于java - 嵌套集合的迭代器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2296232/

相关文章:

Java printf 使用星号时出错

java - 从集合中分离 2 列的值?

mysql - 如何使用 View 从图像中获取 Laravel 集合

php - 二叉搜索树后序迭代器

java - Apache POI xls 列删除

java - 在java中展平一个嵌套的N级嵌套对象

java - Collections.sort 比较方法违反了它的通用契约

c++ - 无法让 BOOST_FOREACH 与我的自定义类一起工作

java - set.iterator()......我错在哪里?

java - 如何在JavaFX中加载大量元素?