这里是要点,基本上是gg
答案 0 :(得分:0)
您的方法可能会失败,因为尽管字符串不相等,但这并不意味着teams
或games
列表已经没有 那些字符串。您需要遍历游戏列表并检查名称是否等于team1
或team2
,如果是,则返回false。
您比较给定的团队并不相同,并且您可以使用您的参数进行比较,但这不是您需要的唯一条件。
if(!team1.equals(team2)) {
另外,你对已经是字符串的值有new String
这一事实会在内存中产生一个新对象(因此它没有意义),但equals方法仍然有效。
答案 1 :(得分:0)
"字符串存储在游戏对象中,这就是为什么我不能在ArrayList中存储两个相同的对象" (你的评论。)
似乎为了换取更多内存,您可以使用Set
(HashSet
或TreeSet
)来存储以前玩过的游戏的记录。如果您要防范相同的配对而不是相同的团队名称(在任何时候),请对两个String
团队名称进行一致排序并将它们连接成一个密钥。检查该密钥是否已存在于该集合中。
编辑:仅查看ArrayList
的其他解决方案。