Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在java中洗牌FilteredList?_Java_Javafx_Java 8_Javafx 8 - Fatal编程技术网

如何在java中洗牌FilteredList?

如何在java中洗牌FilteredList?,java,javafx,java-8,javafx-8,Java,Javafx,Java 8,Javafx 8,当我想洗牌一个FilteredList时,我得到一个java.lang.UnsupportedOperationException 如何处理 代码: FilteredList filteredData= 新建FilteredList(ob,filterByOption(option.get(“selectedCard”)、option.get(“chapter”)); if(option.get(“cardOrder”)=“shuffle”){ 过滤卡=过滤数据; FXCollections.s

当我想洗牌一个
FilteredList
时,我得到一个
java.lang.UnsupportedOperationException

如何处理

代码:

FilteredList filteredData=
新建FilteredList(ob,filterByOption(option.get(“selectedCard”)、option.get(“chapter”));
if(option.get(“cardOrder”)=“shuffle”){
过滤卡=过滤数据;
FXCollections.shuffle(过滤卡);
}
如中所述:

包装ObservableList并使用提供的 谓词传播ObservableList中的所有更改 立即转到FilteredList。

因此,您可以将基础源代码
ObservableList
替换为混洗:

FXCollections.shuffle(ob);
示例:

ObservableList<String> obsList = 
    FXCollections.observableArrayList("Amanda", "Bill", "Adam", "Albus", "Cicero");
FilteredList<String> fList = new FilteredList<>(obsList, s -> s.startsWith("A"));

System.out.println(fList);
FXCollections.shuffle(obsList);
System.out.println(fList);

@user3235815:您可以通过单击左侧的接受答案。
ObservableList<String> obsList = 
    FXCollections.observableArrayList("Amanda", "Bill", "Adam", "Albus", "Cicero");
FilteredList<String> fList = new FilteredList<>(obsList, s -> s.startsWith("A"));

System.out.println(fList);
FXCollections.shuffle(obsList);
System.out.println(fList);
[Amanda, Adam, Albus]
[Adam, Albus, Amanda]