2017-02-08 6 views
0

Вот суть, по сути г.г.избежать добавления дублирующих объектов к ArrayList

+0

Разве вы не можете хранить одни и те же две строки * когда-либо *, или вы не можете хранить одну и ту же две строки подряд? – synchronizer

+0

Невозможно сохранить одну и ту же две строки – yarcenahs

+0

Строки хранятся в игровом объекте, поэтому у меня не может быть двух одинаковых объектов, хранящихся в ArrayList, когда-либо – yarcenahs

ответ

0

Ваш метод, вероятно неудачу, потому что, хотя строки не равны, это вовсе не означает, что teams или games список не уже есть эти строки. Вам нужно зациклиться на списке игр и проверить, соответствует ли имя team1 или team2, если это так, верните false.

Хорошо, что вы сравниваете данные команды, которые не совпадают, и вы можете использовать свои параметры для сравнения, но это не единственное условие, в котором вы нуждаетесь.

if(!team1.equals(team2)) { 

Кроме того, тот факт, у вас есть new String на значениях, которые уже строки создает новый объект в памяти, поэтому (это бессмысленно), но метод равно должен работать.

+0

Следует также отметить, что это защита от идентичных спариваний – yarcenahs

+0

Право. И это нормально, вы просто не проверяли, есть ли 'games'или' команды' уже команда 'team1' или' team2' –

0

«Строки хранятся в игровом объекте, поэтому я не могу иметь два одинаковых объекты, хранящиеся в ArrayList когда-либо» (Ваш комментарий.)

Похоже, что в обмен на больше памяти может использовать Set (HashSet или TreeSet), чтобы сохранить записи предыдущих игр. Если вы защищаете идентичные пары, а не идентичные имена команд (в любой момент), соберите два имени команды String и объедините их в ключ. Проверьте, существует ли этот ключ в наборе.

EDIT: См. Другое решение для ArrayList.

+0

Ах, забыл одно, чтобы упомянуть, другое ограничение - я могу использовать только классы ArrayList, Math и String , – yarcenahs

+0

@yarcenahs * snap * ах, вот так я и сделал бы это. :) Я думаю, это может быть для личного «дополнительного кредита». – synchronizer

 Смежные вопросы

  • Нет связанных вопросов^_^