Часто требуется убрать дубликаты значений, полей и это нужно быстро, т.е. нет времени продумывать сложный алгоритм.
Например, нужно быстро протестировать без изменения логики программы. Как это сделать? Есть выход. Подойдет следующий пример.
У вас есть коллекция, например, testList — коллекция строк из БД.
|
ListIterator<Test> iterTest = testList.listIterator(); while (iterTest.hasNext()) { Test tmpTest = iterTest.next(); //Ваши условия обработки } |
Далее у вас обнаружилась ошибка и вам требуется убрать повторы и произвести вычисления. Тогда подойдет вот такой вариант.
Создаем Set doubleCount = new HashSet(), которым, как видно далее из примеры ограничим попадание в условия обработки дубликатов.
|
ListIterator<Test> iterTest = testList.listIterator(); while (iterTest.hasNext()) { Test tmpTest = iterTest.next(); if (doubleCount.add(tmpTest.getKey())) { //Ваши условия обработки } } |
Вот такое несложное действие часто упрощает жизнь и разработку.
Если у вас ест свои варианты, пишите, присылайте, опубликуем.