避免将重复对象添加到ArrayList

时间:2017-02-08 03:09:25

标签: java class arraylist duplicates

这里是要点,基本上是gg

2 个答案:

答案 0 :(得分:0)

您的方法可能会失败,因为尽管字符串不相等,但这并不意味着teamsgames列表已经没有 那些字符串。您需要遍历游戏列表并检查名称是否等于team1team2,如果是,则返回false。

您比较给定的团队并不相同,并且您可以使用您的参数进行比较,但这不是您需要的唯一条件。

if(!team1.equals(team2)) {

另外,你对已经是字符串的值有new String这一事实会在内存中产生一个新对象(因此它没有意义),但equals方法仍然有效。

答案 1 :(得分:0)

"字符串存储在游戏对象中,这就是为什么我不能在ArrayList中存储两个相同的对象" (你的评论。)

似乎为了换取更多内存,您可以使用SetHashSetTreeSet)来存储以前玩过的游戏的记录。如果您要防范相同的配对而不是相同的团队名称(在任何时候),请对两个String团队名称进行一致排序并将它们连接成一个密钥。检查该密钥是否已存在于该集合中。

编辑:仅查看ArrayList的其他解决方案。