Junior — Middle
რა მეთოდები შეიძლება გამოყენებულ იქნას, რათა თავიდან აიცილოს ConcurrentModificationException გამონაკლისი მრავალთრონული გარემოში კოლექციებთან მუშაობისას?
sobes.tech AI
პასუხი AI-სგან
მრავალმხრივი გარემოსთვის, კოლექციებთან მუშაობისას, რათა თავიდან აიცილოთ ConcurrentModificationException შეცდომა, შეგიძლიათ გამოიყენოთ შემდეგი მეთოდები:
- გამოიყენეთ თრედ-უსაფრთხო კოლექციები
java.util.concurrentპაკეტიდან, მაგალითად,ConcurrentHashMap,CopyOnWriteArrayList. - ხელით სინქრონიზაცია მოახდინეთ კოლექციაზე
synchronizedბლოკებით ან სხვა სინქრონიზაციის მექანიზმებით. - გამოიყენეთ ინტერატორები, რომლებიც მხარს უჭერენ უსაფრთხო მოდიფიკაციას, მაგალითად,
ListIteratorსიისთვის. - შექმენით კოლექციების ასლები ინტერაციისთვის (მაგალითად,
new ArrayList<>(მუშაობისსია)), რათა თავიდან აიცილოთ ძირითადი კოლექციის ცვლილებები დროსი სვლით.
CopyOnWriteArrayList-ის გამოყენების მაგალითი:
CopyOnWriteArrayList<String> სია = new CopyOnWriteArrayList<>();
სია.add("ნივთი1");
for (String ნივთი : სია) {
სია.add("ნივთი2"); // არ გამოიწვევს `ConcurrentModificationException`
}