В настоящее время я работаю с базой данных на javafx и понятия не имею о ObservableList, могу ли я использовать ArrayList вместо ObservableList?В чем разница между ArrayList и ObservableList?
ответ
Это зависит. Если вам нужен 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();
ArrayList: Реализуемая реализация интерфейса списка. Выполняет все необязательные операции с списками и разрешает все элементы, включая null.
ObservableList: Список, позволяющий слушателям отслеживать изменения при их возникновении.
Это зависит от вашего случая. Если вы хотите отобразить этот список, например, tableView или другое представление, вы должны использовать коллекцию Observable, которая содержит ect слушателей и другие компоненты, необходимые для взаимодействия с представлением.
Разница заключается в том, что один список наблюдаемый, а другой нет. – luk2302
Существует эта фантастическая новая концепция ** исследования ** - вы должны попробовать. – Filburt
@Filburt Посмотрите на ответ Fabian. Кажется, он основан на опыте больше, чем знания. Мне кажется, это справедливый вопрос. – CKing