我在 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/