Пишу код, попал в тупик. Есть код, перебирающий и сравнивающий значения 2 List'ов заполненных объектами класса Action. Почему то удаление из коллекций работает на всегда. Добавил в код проверку и вижу, что метод remove() для объекта коллекции вызван, а последующая проверка наличия его же в этой коллекции показывает true!
iteratorFileList = fileList.iterator();
while (iteratorFileList.hasNext()) {
Action temp = iteratorFileList.next();
Iterator<Action> iteratorDBList = dbList.iterator();
while (iteratorDBList.hasNext()){
Action temp2 = iteratorDBList.next();
if (temp.getProductCode().equals(temp2.getProductCode()) && temp.getfP()==temp2.getfP()) {
boolean test = false;
if (temp2.getProductCode().equals("18%КРД1А04")) {
System.out.println(temp2);
System.out.println("del");
test = true;
}
temp.getId().addAll(temp2.getId());
iteratorDBList.remove();
p++;
if (test){
System.out.println(dbList.contains(temp2));
}
}
}
}
Вывод:
Action{actionName='Тестовая акция', bankActionName='Тестовая акция', productSetId=10396, productCode='18%КРД1А04', minSum=1500, maxSum=200000, rate=18.0, term=4, fP=0, discount=0.0, id=420251}
del
true
Action{actionName='Тестовая акция', bankActionName='Тестовая акция', productSetId=10396, productCode='18%КРД1А04', minSum=200001, maxSum=500000, rate=18.0, term=4, fP=0, discount=0.0, id=511414}
del
true
Action{actionName='Тестовая акция', bankActionName='Тестовая акция', productSetId=10396, productCode='18%КРД1А04', minSum=1500, maxSum=200000, rate=18.0, term=4, fP=0, discount=3.71, id=449664}
del
false
Action{actionName='Тестовая акция', bankActionName='Тестовая акция', productSetId=10396, productCode='18%КРД1А04', minSum=200001, maxSum=500000, rate=18.0, term=4, fP=0, discount=3.71, id=511754}
del
false
Action{actionName='Тестовая акция', bankActionName='Тестовая акция', productSetId=10396, productCode='18%КРД1А04', minSum=200001, maxSum=500000, rate=18.0, term=4, fP=10, discount=0.0, id=511448}
del
true
Коллекции сравниваются большие - по несколько тысяч записей. При этом итоговое количество ошибок всегда неизменно. Где я туплю?
dbList.contains(temp2)
может возвращать истину, если в dbList
есть ещё один или более Action
равный содержащемуся в переменной temp2
.
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Виртуальный выделенный сервер (VDS) становится отличным выбором
Здравствуйте! Рисую 3D-объект с помощью OpenGl на javaВозникла необходимость перемещать и вращать этот объект вокруг своих осей
Здравствуйте, подскажите, пожалуйста, как получить все элементы gridviewУ меня в gridview находится матрица editText, записывалось через собственный...
Начинаю знакомиться с вебРассматриваю примеры HelloWorld'ов, где в некоторых приводится реализация с использованием сервлетов, и при открытии...