(1)使用Vector(ArrayList所有方法加synchronized,太重)。 (2)使用Collections.synchronizedList()转换成线程安全类。
Collection<Object> objects = Collections.synchronizedList(new ArrayList<>()); Set<String> stringSet = Collections.synchronizedSet(new HashSet<String>()); Map<Object, Object> synchronizedMap = Collections.synchronizedMap(new HashMap<>());(3)使用java.concurrent.CopyOnWriteArrayList(推荐)
CopyOnWriteArrayList<String> arrayList = new CopyOnWriteArrayList<>(); //list线程安全类 CopyOnWriteArraySet<String> set = new CopyOnWriteArraySet<>(); //set线程安全类 ConcurrentHashMap<String, Object> concurrentHashMap = new ConcurrentHashMap<>(); //map的线程安全类