【发布时间】:2016-09-27 18:05:18
【问题描述】:
有一个Team 对象,其中包含玩家列表List<Players>。所有团队都需要存储在Teams 集合中。
条件:
-
如果需要将新玩家添加到特定团队,则从
李>Teams检索该特定团队,并且需要将Player添加到该团队的Players列表中 集合
Teams中的每个Team对象都需要基于team name是唯一的集合中的
Team对象需要根据team name进行排序。
注意事项:
在这种情况下,当我使用 List<Team> 时,我可以实现 1, 3 。但不能满足唯一性。
如果我用TreeSet<Team> 2,3就可以实现。但由于 TreeSet 上没有 get 方法,因此无法选择特定团队
所以我最终使用了TreeMap<teamName,Team>。这使得所有 1,2,3 成为可能。但我认为这不是这样做的好方法
哪种数据结构最适合这个用例?最好形成 Java 集合。
【问题讨论】:
-
为什么不是一个 TreeMap 玩家 -> 团队和一个 TreeSet 团队 -> 玩家?通常将多个简单的数据结构放在一起更有效。构建一个额外的类来保存这些,并提供一个接口来连贯地改变这些。
-
But I think it's not the good way to do it为什么? -
TreeMap 对于这个用例来说听起来不错。你为什么不喜欢它?
-
我的想法是,当我想对这个
TreeMap进行操作时,我需要同时插入team name和Team。 -
唯一性可以满足
List的要求,方法是覆盖equals()以根据团队名称进行评估,然后在插入之前使用contains。此外,您可以在您的类中创建一个方法get(String teamName)来搜索列表。
标签: java algorithm data-structures