Вы должны просто вернуть true
, если найдете совпадение.Вы определенно не хотите снова добавлять существующий элемент в List
(myOrderResultList.add(i,myOrderResultPOJO);
является причиной бесконечного цикла).
private boolean checkItemId(MyOrderResultPOJO myOrderResultPOJO)
{
for (int i=0;i<myOrderResultList.size();i++) {
if (myOrderResultList.get(i).getItemId().equals(myOrderResultPOJO.getItemId())) {
Log.d("myOrderResultList","entering");
return true;
}
}
return false;
}
Тем не менее, логика метода вызывающего (saveResultList
) странно.Сначала вы добавляете элемент к List
, а затем вызываете checkItemId(myOrderResultPOJO)
, который проверяет, существует ли он в List
(и вы игнорируете значение, возвращаемое этим методом).Наверное, должно быть наоборот:
public void saveResultList(MyOrderResultPOJO myOrderResultPOJO)
{
if (!checkItemId(myOrderResultPOJO)) {
myOrderResultList.add(myOrderResultPOJO);
}
setMyOrderResultListNew(myOrderResultList);
}