ArrayList和ObservableList有什么区别?

时间:2017-01-29 11:10:27

标签: java javafx-2

目前我正在使用javafx上的数据库并且不知道ObservableList,我可以使用ArrayList而不是ObservableList吗?

3 个答案:

答案 0 :(得分:7)

这取决于。如果您需要ObservableList,则无法直接使用ArrayListObservableList添加了一种方法来监听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:允许侦听器在发生变化时跟踪变化的列表。