ArrayList 和 ObservableList 有什么区别?
What is the difference between ArrayList and ObservableList?
目前我在 javafx 上使用数据库,对 ObservableList 一无所知,我可以使用 ArrayList 代替 ObservableList 吗?
ArrayList: Resizable-array List接口的实现。实现所有可选列表操作,并允许所有元素,包括 null。
ObservableList: 允许侦听器在发生变化时跟踪变化的列表。
这取决于你的情况。如果您想在例如 tableView 或其他视图中显示此列表,那么您应该使用 Observable 集合,其中包含侦听器等和与视图进行交互所需的其他组件。
这取决于。如果需要 ObservableList
,则不能直接使用 ArrayList
。 ObservableList
添加了一种监听列表变化的方法,ArrayList
没有实现。
但是您可以使用 ArrayList
作为 ObservableList
的支持列表
ArrayList<T> list = ...
ObservableList<T> observableList = FXCollections.observableList(list);
请注意,在这种情况下,您应该确保没有通过 observableList
以外的任何方式修改列表,否则不会触发侦听器。
请注意,FXCollections
还提供了一种创建由 ArrayList
支持的 ObservableList
的方法,而无需处理 ArrayList
本身:
ObservableList<T> observableList = FXCollections.observableArrayList();
目前我在 javafx 上使用数据库,对 ObservableList 一无所知,我可以使用 ArrayList 代替 ObservableList 吗?
ArrayList: Resizable-array List接口的实现。实现所有可选列表操作,并允许所有元素,包括 null。
ObservableList: 允许侦听器在发生变化时跟踪变化的列表。
这取决于你的情况。如果您想在例如 tableView 或其他视图中显示此列表,那么您应该使用 Observable 集合,其中包含侦听器等和与视图进行交互所需的其他组件。
这取决于。如果需要 ObservableList
,则不能直接使用 ArrayList
。 ObservableList
添加了一种监听列表变化的方法,ArrayList
没有实现。
但是您可以使用 ArrayList
作为 ObservableList
ArrayList<T> list = ...
ObservableList<T> observableList = FXCollections.observableList(list);
请注意,在这种情况下,您应该确保没有通过 observableList
以外的任何方式修改列表,否则不会触发侦听器。
请注意,FXCollections
还提供了一种创建由 ArrayList
支持的 ObservableList
的方法,而无需处理 ArrayList
本身:
ObservableList<T> observableList = FXCollections.observableArrayList();