Вот это Сравнение if(list.get(i).equals(list.get(i-1))) n++; нужно делать именно через equals так как сравниваются не примитивные типы а Integer, для класса Integer есть intовый пул но он до 128, соответственно если вы будете сравнивать вот так Integer == Integer то все будет работать для чисел до 128, если попытаться сравнить 129==129 то будет false. Последовательность 129, 129, .....129 (10 раз) даст в результате 1 повторение вместо 10. или может ссылочку на материал почитать?