Должен ли я использовать Iterator для удаления заданной строки из моего ArrayList?Или есть лучший цикл, который я должен использовать?Цикл
for / foreach в Iterable (который ArrayList является реализацией) не предназначен для удаления элементов во время итерации.Ваш подход с Итератором правильный.
Вы можете сделать это следующим образом:
List<App> list = ...;
for(Iterator<App> it = list.iterator(); it.hasNext(); ) {
App app = it.next();
String appName = app.getName();
if (appName.equals(name)) {
it.remove();
System.out.println(appName + "has been removed.");
}
}
Или в качестве альтернативы вы можете использовать List.removeIf()
, например:
List<App> list = ...;
list.removeIf(app -> app.getName().equals(name));