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,我希望它所有的球队在所有任务迭代,从分配要分配的无缝连接.
我该怎么做呢?
一种方法,使用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 /等进行建模.但是,协会.