Ben bir ArrayList
önbelleğe ve süresiz birden çok iş parçacığı arasında paylaşılan gerekmektedir. Operasyonlar sık sık ekler ve kaldırır, artı zaman zaman yinelenen içerir. bu bilgilere erişimi yöneten bir sarıcı sınıfındaalternatif, ara sıra ilerlerken
ArrayList
hayatlar:
public class MyListWrapper<T> implements Iterable<T> {
private List<T> innerList = new ArrayList<T>();
public Iterator<T> iterator() {
return innerList.listIterator();
}
public void add(T element) {
innerList.add(element);
//app-specific logic
}
//remove(T), etc in the same pattern...
}
Şu anda iplik güvenliği için hazırlıklar yapıyorum. İlk başta, CopyOnWriteArrayList
en iyi cevap gibi görünüyordu, ancak performansları beni ilgilendiriyor, çünkü değişiklikler her şeyden daha sık yapılacaktır.
public Iterator<T> iterator() {
return new ArrayList<T>(innerList).listIterator();
}
//plus concurrency tweaks for any non-atomic modifications to innerList
beni en iyi yaklaşım bulmama yardım et olurdu.
Mükemmel, bu tam olarak ihtiyacım olan şey. Bana bir şey öğretmek için +1. Teşekkürler –
Yineleyici iş parçacığı için güvenlidir, böylece eşitlemeniz gerekmez ve bir kopyasını almanız gerekmeyebilir. –
java 1.8 ben metot Collections.newSetFromMap –