Nếu tôi có một bộ sưu tập đồng bộ như thế nàyđược đồng bộ hóa với phương thức toArray() của Collection?
Collection c = Collections.synchronizedCollection(myCollection);
javadoc cho synchronizedCollection
mentiones rằng lặp bên ngoài phải được đồng bộ như thế này:
synchronized (c) {
Iterator i = c.iterator();
while (i.hasNext()) {
process (i.next());
}
}
Tôi có thể giả thiết rằng c.toArray()
được đồng bộ hóa và do đó không thay đổi cho bộ sưu tập sẽ xảy ra khi phương thức thực thi?
Hoặc tôi cần phải đồng bộ hóa nó là tốt:
synchronized (c) {
c.toArray();
}
'CollectionUtils' ở đâu? Đó không phải là một lớp Java API chuẩn. – Jesper
Tôi cho rằng anh ta có nghĩa là 'java.util.Collections', không phải' CollectionUtils'. – skaffman
Đó là lớp tiện ích của Apache Commons Collections ' –