如何将可观察列表转换为数组列表?爪哇

Phi*_*yyy 5 java javafx

我正在尝试获取表视图中的所有项目并将它们放在数组列表中以供进一步处理。这就是我想要实现的目标,但显然它行不通。

ArrayList<Consultation> showing = consultationTable.getItems();
Run Code Online (Sandbox Code Playgroud)

Ole*_*.V. 7

不错的推荐解决方案:

List<Consultation> showing = provider.getItems();
Run Code Online (Sandbox Code Playgroud)

仅在必要时使用的解决方案:

    List<Consultation> consultations = provider.getItems();
    ArrayList<Consultation> showing;
    if (consultations instanceof ArrayList<?>) {
        showing = (ArrayList<Consultation>) consultations;
    } else {
        showing = new ArrayList<>(consultations);
    }
Run Code Online (Sandbox Code Playgroud)

如果由于某种原因您需要使用不在 List 或 ObservableList 接口中的 ArrayList 方法(我想不出为什么),您可以使用后者。


小智 6

使用Stream类的简单方法

List<T> list = ObservableList<T>.stream().collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)