我有两个阵列列表,一个用于团队,一个用于玩家。球员的争论是在球队的班级,我已成功地设法得到它,以便每个球队都可以添加球员。
但我想知道的是,通过集合迭代来展示所有玩家的最佳方式是什么,无论他们与哪个团队相关联?这甚至可能吗?
答案 0 :(得分:1)
您可以创建一个包含所有玩家的新列表:
List<Player> allp = new ArrayList<Player>();
for(Team t : teams)
allp.addAll(t.getPlayers());
答案 1 :(得分:0)
您必须创建另一个包含所有玩家引用的结构。例如,您可以为所有玩家设置另一个集合,并确保在创建时将新玩家添加到该集合中。 Set
具有理想的语义,例如不允许使用欺骗,因此可能对您有意义。
或者只是循环通过所有球队,循环通过所有球员......
在集合框架内,没有办法说明所有玩家的循环,无论他们在哪个集合中。
答案 2 :(得分:0)
也许您应该使用Map<String,List<String>>
,其中key是团队的名称,值是该团队中的玩家列表。通过这种方式,您可以获取此地图的所有值(使用map.values()
)并对其进行迭代,以获得所有玩家的列表,无论团队如何。