Как удалить дубликаты массива List

Имеется List массив типа Integer, пробовал использовать библиотеку org.apache.commons:commons-lang3, но тут такая проблема:

if(help_array.size() != 0){
    for(int i=0; i<help_array.size()-1; i++){
        for(int j=i+1; j<help_array.size(); j++)
            if(help_array.get(i) == help_array.get(j)){
                help_array = ArrayUtils.remove(help_array, j);
            }
        }
    }
}

введите сюда описание изображения

Заранее спасибо.


Ответы (1 шт):

Автор решения: Sergei Buvaka

Ну сохраните ваш список в сет. И он сам уберет все дубликаты.

Это для примера код:

List<Integer> help_array = new ArrayList<>();
help_array.add(1);
help_array.add(1);
help_array.add(2);
help_array.add(3);
help_array.add(3);
help_array.add(4);
help_array.add(4);

for (Integer item : help_array) {
    System.out.print("[ " + item + " ], ");
}
System.out.print("\n");

Set<Integer> set = new HashSet<>(help_array);

for (Integer item : set) {
    System.out.print("[ " + item + " ], ");
}

Вывод:

Первый список:

[ 1 ], [ 1 ], [ 2 ], [ 3 ], [ 3 ], [ 4 ], [ 4 ]

Сет:

[ 1 ], [ 2 ], [ 3 ], [ 4 ]

P.S. Единственное если вы будете использовать HashSet с сложными моделями позаботьтесь о том, чтоб корректно переопределить hascCode() и equals()

→ Ссылка