ArrayList 和 ObservableList 有什么区别?

What is the difference between ArrayList and ObservableList?

目前我在 javafx 上使用数据库,对 ObservableList 一无所知,我可以使用 ArrayList 代替 ObservableList 吗?

ArrayList: Resizable-array List接口的实现。实现所有可选列表操作,并允许所有元素,包括 null。

ObservableList: 允许侦听器在发生变化时跟踪变化的列表。

这取决于你的情况。如果您想在例如 tableView 或其他视图中显示此列表,那么您应该使用 Observable 集合,其中包含侦听器等和与视图进行交互所需的其他组件。

这取决于。如果需要 ObservableList,则不能直接使用 ArrayListObservableList 添加了一种监听列表变化的方法,ArrayList 没有实现。

但是您可以使用 ArrayList 作为 ObservableList

的支持列表
ArrayList<T> list = ...
ObservableList<T> observableList = FXCollections.observableList(list);

请注意,在这种情况下,您应该确保没有通过 observableList 以外的任何方式修改列表,否则不会触发侦听器。

请注意,FXCollections 还提供了一种创建由 ArrayList 支持的 ObservableList 的方法,而无需处理 ArrayList 本身:

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