У меня есть коллекция, которую я хочу удалить с помощью observableList.remove (obj), а не по индексу и добавить в начале, поэтому я подумал, почему бы просто не использовать связанный список. Я обнаружил, что могу реализовать свой собственный наблюдаемый список и уведомлять с помощью методов добавления и удаления { ссылка }:
public class ObservableList implements List<T> {
private List<Listener> listeners = new ArrayList<Listener>();
// usual methods for adding/removing listeners
private List<T> list;
public ObservableList(List<T> list) {
this.list = list;
}
// implement methods from List and delegate to the internal list
// send notifications to listeners for add/remove operations
public boolean add(T item) {
fireEvent(Type.ADD, item); // like that
return list.add(item); // delegate to the internal list
}
}
Но я не уверен, что ListView использует произвольный доступ под капотом когда я удаляю элемент из середины с помощью observable.remove (obj), и он переупорядочивает вид.
Так я получу повышение производительности, если я реализую наблюдаемый связанный список, потому что у меня много вставок в начале, или будет хуже, потому что ListView выигрывает от произвольного доступа к ArrayList?