2014-07-02 3 views
0

У меня есть проблема на данный момент в моем проекте. У меня есть 1 arraylist (Позволяет называть его BIG), который формируется еще 3-мя arraylists (A, B, C) из SQL-запроса каждый, поэтому у меня есть в основном дублированные элементы (иногда даже один и тот же элемент 3 или более раз) в BIG arraylist ,Удалить дубликаты из ArrayList, когда объекты не имеют одинаковых ссылок

Моя проблема заключается в том, что я не могу использовать метод .contains(), так как ссылки между ними различаются между собой (хотя некоторые объекты представляют один и тот же «элемент») и как «первичный ключ», атрибут, который никогда не изменяется внутри каждого элемента в arraylist - это идентификатор элементов (int). Как я могу сделать, чтобы удалить дублированные элементы, чтобы я мог получить только один из «элементов»?

+0

Метод contains() не сравнивает ссылки, он использует .equals() для объектов, содержащихся в списке. Вам нужно реализовать equals() и hashcode() в этом классе, как это предложил @Java Learner – Ignazio

ответ

1

Вам необходимо переопределить метод Equals этого класса в соответствии с требованиями бизнеса.

И конечно hashcode метод, потому что если равен переопределяется хэш метод также должен быть перегружен.

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