在不获取ConcurrentModificationException的情况下,通过线程将对象添加到列表中,同时使用列表,可以使用线程安全的数据结构来解决该问题。以下是一种可能的解决方案:
示例代码如下:
import java.util.List;
import java.util.concurrent.CopyOnWriteArrayList;
public class ThreadSafeListExample {
private List<Object> list = new CopyOnWriteArrayList<>();
public void addObject(Object obj) {
list.add(obj);
}
public void printList() {
for (Object obj : list) {
System.out.println(obj);
}
}
}
在上面的示例中,我们使用CopyOnWriteArrayList来存储对象,并且在添加对象时不会抛出ConcurrentModificationException异常。可以通过调用addObject方法来添加对象,并通过调用printList方法来打印列表中的对象。
示例代码如下:
import java.util.ArrayList;
import java.util.List;
public class ThreadSafeListExample {
private List<Object> list = new ArrayList<>();
public void addObject(Object obj) {
synchronized (list) {
list.add(obj);
}
}
public void printList() {
synchronized (list) {
for (Object obj : list) {
System.out.println(obj);
}
}
}
}
在上面的示例中,我们使用ArrayList来存储对象,并通过使用同步块来确保在修改列表时不会发生并发修改异常。可以通过调用addObject方法来添加对象,并通过调用printList方法来打印列表中的对象。
无论使用哪种方法,都可以在不获取ConcurrentModificationException的情况下,通过线程将对象添加到列表中,并且可以同时使用列表。
领取专属 10元无门槛券
手把手带您无忧上云