for (int i = 0; i < list.size();i++){
   if (list.get(i).contains("р") && !list.get(i).contains("л")){
       list.remove(i); }
Если первое слово "роза", оно удаляется и i+1 =1, и проверка начинается не со слова "лоза" которое было вторым, т.к. его i стал = 0 Как сделать, чтоб при удалении слова проверка опять начитала с этого же индекса i ? Если код написать вот так:
for (int i = 0; i < list.size();i++){
   if (list.get(i).contains("р") && !list.get(i).contains("л")){
       list.remove(i);
       i--; }
то появляется ошибка памяти, т.к. i=-1;