目前我正在使用javafx上的数据库并且不知道ObservableList,我可以使用ArrayList而不是ObservableList吗?
答案 0 :(得分:7)
这取决于。如果您需要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();
答案 1 :(得分:1)
这取决于你的情况。如果要在例如tableView或其他视图中显示此列表,则应使用Observable集合,其中包含侦听器ect和其他与视图交互所必需的组件。
答案 2 :(得分:0)
ArrayList: List接口的可调整大小的数组实现。实现所有可选列表操作,并允许所有元素,包括null。
ObservableList:允许侦听器在发生变化时跟踪变化的列表。