if(fil.get(x).equals(lif.get(y)))
{
i--;
continue;
}
Одна из возможных проблем - если «i» равно 0 (ноль). Декремент i--
установит 'i' в -1, что вызовет исключение с ... lif.add(i, fil.get(x));
Возможно, это не ответ, но вы должны убедиться, что все i, x и y находятся в границах объектов ArrayList.