2017-01-29 37 views
3

當前我正在使用javafx上的數據庫,並且對ObservableList不瞭解,我可以使用ArrayList而不是ObservableList嗎?ArrayList和ObservableList有什麼區別?

+0

不同的是,一個列表是可觀的,另一種是不。 – luk2302

+0

**研究有這個夢幻般的新概念 - 你應該試一試。 – Filburt

+0

@Filburt看看fabian的回答。這似乎是基於經驗而不是知識。這對我來說似乎是一個公平的問題。 – CKing

回答

5

這取決於。如果您需要ObservableList,則不能直接使用ArrayListObservableList增加了一種方法來偵聽列表中的更改,其中ArrayList未實現。

但是你可以使用一個ArrayList作爲ObservableList

ArrayList<T> list = ... 
ObservableList<T> observableList = FXCollections.observableList(list); 

注意的後臺列表,在這種情況下,你應該確保你沒有通過任何手段,而是observableList修改列表,因爲否則的話贏得了聽衆不會被觸發。

注意FXCollections還提供用於創建由ArrayList支持的ObservableList的方法,而不必處理ArrayList本身:

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

ArrayList: List接口的可調整大小的實現。實現所有可選的列表操作,並允許所有元素,包括null。

ObservableList:允許偵聽器在發生變化時進行跟蹤的列表。

1

這取決於你的情況。如果你想在例如tableView或其他視圖中顯示這個列表,那麼你應該使用Observable集合,其中包含listener和其他組件需要與視圖進行交互。