嵌套集合上的迭代器

Ami*_*hum 3 java collections iterator

我在Java中有两个数据结构:
一个叫做DebateAssignment,有5个DebateTeam对象,每个对象都包含一个包含的特定枚举

{JUDGE, PROP1, PROP2, OP1, OP2}
Run Code Online (Sandbox Code Playgroud)

在另一类我使用List<DebateAssignment>,我想创建一个迭代器,它指向一个特定的DebateTeam特定DebateAssignment,我希望它所有的球队在所有任务迭代,从分配要分配的无缝连接.

我该怎么做呢?

Kev*_*ion 5

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

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

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