2017-01-29 2 views
3

В настоящее время я работаю с базой данных на javafx и понятия не имею о ObservableList, могу ли я использовать ArrayList вместо ObservableList?В чем разница между ArrayList и ObservableList?

+0

Разница заключается в том, что один список наблюдаемый, а другой нет. – luk2302

+0

Существует эта фантастическая новая концепция ** исследования ** - вы должны попробовать. – Filburt

+0

@Filburt Посмотрите на ответ Fabian. Кажется, он основан на опыте больше, чем знания. Мне кажется, это справедливый вопрос. – CKing

ответ

5

Это зависит. Если вам нужен ObservableList, вы не можете использовать ArrayList напрямую. ObservableList добавляет способ прослушивания изменений в списке, который ArrayList не реализует.

Однако вы можете использовать в качестве списка ArrayList затыловку ObservableList

ArrayList<T> list = ... 
ObservableList<T> observableList = FXCollections.observableList(list); 

Обратите внимание, что в этом случае вы должны убедиться, что вы не изменяя список с помощью любых средств, но observableList, так как в противном случае выиграл слушатели Не запускается.

Обратите внимание, что FXCollections также обеспечивает способ создания ObservableList подкрепленной ArrayList без необходимости иметь дело с самой ArrayList:

ObservableList<T> observableList = FXCollections.observableArrayList(); 
0

ArrayList: Реализуемая реализация интерфейса списка. Выполняет все необязательные операции с списками и разрешает все элементы, включая null.

ObservableList: Список, позволяющий слушателям отслеживать изменения при их возникновении.

1

Это зависит от вашего случая. Если вы хотите отобразить этот список, например, tableView или другое представление, вы должны использовать коллекцию Observable, которая содержит ect слушателей и другие компоненты, необходимые для взаимодействия с представлением.