Вот код:
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayList;

public class test {
    public static void main(String[] args) throws Exception {
        BufferedReader bis = new BufferedReader(new InputStreamReader(System.in));

        ArrayList<String> list = new ArrayList<String>();
        list.add("лора");
        list.add("лара");
        list.add("розы");
        list.add("жаба");
        list.add("роза");
        list.add("лоза");
        list.add("лира");
        list.add("лола");

        list = fix(list);

        for (String s : list) {
            System.out.println(s);
        }
    }

    public static ArrayList<String> fix(ArrayList<String> list) {
        for(int i=0;i<list.size();i++){
            String x=list.get(i);
            if(x.contains("р")&&x.contains("л")){

            }else{
                if(x.contains("л")){
                    list.add(x);
                }else{
                    if(x.contains("р")){
                        list.remove(i);
                    }
                }
            }
        }
        return list;
    }
}
С буквой "р" все отлично - строки в массиве, содержащие эту букву удаляеются. Строки, содержащие и "р" и "л" - остаются без изменений. Однако дублирование строки, содержащую "л" не работает. При компиляции идея сначала порядком подгружает проц, скустя какое-то время выдается ошибка