if (oi < oldList.size() && ni < newList.size() && oldList.get(oi).equals(newList.get(ni))) { ops.add(new Object[] { 0, getIndex(oldi), newList.get(newi) }); moveNew(); ops.add(new Object[] { -1, getIndex(oldi), oldList.get(oldi) }); ops.add(new Object[] { -1, getIndex(oldi), oldList.get(oldi) }); delayedNew.put(foundNext, new Object[] { new Object[] { 1, foundNext, oldList.get(oldi) } }); ops.add(new Object[] { -1, getIndex(foundOld), oldList.get(foundOld) }); skipOld.add(foundOld);