Junior — Middle
Жыйымдан элементтерди алып салууну тоскоолдосо, эмне болот?
sobes.tech AI
AIден жооп
Эгер Javaда коллекцияны кайталоо учурунда элементтерди түз эле алып салууга аракет кыласыз (мисалы, коллекциянын методу аркылуу), бул ConcurrentModificationException менен аяктайт. Бул, итератор коллекциядагы өзгөртүүлөрдү көзөмөлдөп жаткандыктан жана анын методтору сыртында жасалган алып салуулар итерациянын бүтүндүгүн бузгандыктан болот.
Эң туура жол — итератордун өзү колдонгон remove() методун колдонуу:
Iterator<String> iterator = list.iterator();
while (iterator.hasNext()) {
String item = iterator.next();
if (шарт) {
iterator.remove(); // коопсуз алып салуу
}
}
Мындай жол менен алып салуу итератордун ишине тоскоолдук кылбайт жана ката пайда болбойт.