Не могу понять в чем ошибка. Удаляю элемент коллекции через итератор ( где то читал что безопасное удаление ), но выпадает исключение java.lang.UnsupportedOperationException.
Но итератор от списка должен поддерживать метод remove(); (метод не завершен так что не принципиально что он всегда возвращает false)
public boolean find(List x, List y) {
List z=new LinkedList();
Object obj1;
Object obj2;
Iterator iteratorX =x.iterator();
Iterator iteratorY =y.iterator();
try {
while (iteratorX.hasNext()){
obj1=iteratorX.next();
while (iteratorY.hasNext()){
obj2=iteratorY.next();
if(obj1.equals(obj2)){
System.out.println(obj2);
z.add(obj2);
iteratorY.remove();
break;
}
else {
iteratorY.remove();
break;
}
}
}
}
catch (Exception e){
System.out.print(e.getMessage());
}
return false;
}
Класс Main
import java.util.Arrays;
public class Main
{
public static void main(String[] args) {
Subsequence s = new SubsequenceImpl();
boolean b = s.find(Arrays.asList("A", "B", "C", "D"),Arrays.asList("A", "ABC", "B", "M", "D", "M", "C","DC", "D"));
System.out.println(b); // Результат: true
}