Java 为什么ListIterator与Stream有区别

Java 为什么ListIterator与Stream有区别,java,javafx,iterator,java-stream,Java,Javafx,Iterator,Java Stream,我们将一个字典txt文件转换为字符串[]simpleArray 我们很少与array合作,因此这一次超出了我们的舒适区 该格式有466552项,其中40项为非细菌性 当我们检查拼写错误的单词时,它的速度非常快 当我们返回列表并检查单词拼写是否正确时,我们使用的是ListIterator 根据搜索词,我们发现结果很奇怪 因此,我们尝试使用带有过滤器和lambda的Java8流 以下是使用带有搜索词“some”的ListIterator的结果 有些人总有一天会有一些人会有一些人 翻跟头翻跟头翻跟头

我们将一个字典txt文件转换为字符串[]simpleArray
我们很少与array合作,因此这一次超出了我们的舒适区
该格式有466552项,其中40项为非细菌性
当我们检查拼写错误的单词时,它的速度非常快
当我们返回列表并检查单词拼写是否正确时,我们使用的是ListIterator
根据搜索词,我们发现结果很奇怪
因此,我们尝试使用带有过滤器和lambda的Java8流

以下是使用带有搜索词“some”的ListIterator的结果

有些人总有一天会有一些人会有一些人 翻跟头
翻跟头翻跟头 有时某地某地某地某地某地某地某时某地某地某地某地 躯体的


以下是使用ListIterator和搜索词“someo”和“someon”


有人会出演的


以下是使用带过滤器和lambda的流的结果,搜索词是“someon”

某人某人某人某人某人的


问题是我们是否正确构造了ListIterator代码?
代码运行时,不会产生可靠的结果

我们希望知道流代码是否可以以不同的方式构造
目标是将项目添加到列表视图中,现在结果显示在文本区域中
我们以前没有使用过listview


}如果(找到!=true){
for(indexSC=0;indexSCs.startsWith(“someon”))
//.forEach(System.out::println);
.forEach(列表::添加);
字符串aL=list.toString();
System.out.println(“!!!!aL”+aL);
字符串La=list.toString().replace(“[”,”).replace(“]”,”).replace(“,”,”);
System.out.println(“@@@@Stream”+La);
txaML.appendText(La);
txaML.appendText(“\n”);
//list.forEach(System.out::println);
ListIterator listItr=cs.ListIterator();
System.out.println(“%%%Second Find”+simpleArray[indexSC]+”位于indexSC“+indexSC+“L”+simpleArray[indexSC].length());
txaML.clear();
while(listItr.hasNext()){
if(listItr.next().startsWith(“someon”)){
appendText(listItr.next());
txaML.appendText(“\n”);
//appendText(listItr.next().intern());
//txaML.appendText(“\n”);
System.out.println(!!!!ListIterator“+listItr.next());
//System.out.println(“!!!!!!!下一个实习生”+listItr.Next().intern());
}  
}
我们希望知道流代码是否可以构造 不同的

我们在您的项目中添加了一些项目,即组合框和列表视图
为什么?如果您计划选择流生成的信息,那么在选择项目(文本)时,TextArea是一个真正的负担
我们注意到您有一个ArrayList列表,流将数据添加到该列表中
因此不需要所有替换代码。我们在ListView中添加了一个SelectionModel侦听器

这是您的旧剩余代码的代码
这就是组合框所需的全部内容

 public void CboSelect(){
 months = FXCollections.observableArrayList();
}

@FXML
public void getSP(){
    String selected = cboSP.getValue().toString();
    System.out.println("S S S selected "+selected); 
}
这是新的艺术作品哈哈

        }if(found != true){

        lvListView.setStyle("-fx-font-size:18.0;-fx-background-color: white;");
        for(indexSC = 0; indexSC < simpleArray.length;indexSC++){
        if(simpleArray[indexSC].toLowerCase().contains(txtTest.getText().trim().toLowerCase())){
        // array stream foreach filter results to textarea javafx
        List<String> cs = Arrays.asList(simpleArray);

        ArrayList list = new ArrayList<>();
        cs.stream().filter(s -> s.startsWith("someon"))
          //.forEach(System.out::println); 
        .forEach(list :: add);   
        //String aL = list.toString();
        //System.out.println("!!!! aL "+aL);
        //La = list.toString().replace("[", "").replace("]","").replace(",", "").replace(" ", "\n");
        int L = list.size();
        for(int X = 0; X < L;X++){
        String A = (String) list.get(X);
        cboSP.getItems().add(A);
        txaML.appendText(A);
        txaML.appendText("\n");
        lvListView.getItems().add(A);
        System.out.println(" = = L "+L+" Num "+A);
        }

        lvListView.getSelectionModel().selectedItemProperty()
        .addListener((observable, oldValue, newValue) -> {
        System.out.println(newValue);});
}如果(找到!=true){
lvListView.setStyle(“-fx字体大小:18.0;-fx背景色:白色;”);
for(indexSC=0;indexSCs.startsWith(“someon”))
//.forEach(System.out::println);
.forEach(列表::添加);
//字符串aL=list.toString();
//System.out.println(“!!!!aL”+aL);
//La=list.toString().replace(“[”,”).replace(“]”,“).replace(“,”).replace(“,”,“\n”);
int L=list.size();
对于(int X=0;X{
System.out.println(newValue);});
我们在ListIterator的性能方面找不到太多的信息

我们看了很多关于流的帖子,似乎是新的Java 8东西

我们正在努力改进您的流代码,我希望他们不要结束这个问题!因为我们一直在研究同一个概念。我想好奇并决定最好的编码方式是不值得的。流中有很多代码method@James_Duh 我们编辑了这个问题。因为我们很少使用ListIterator或带有lambda的流,我知道它会运行,但lambda似乎是一堆乱七八糟的东西。如果你喜欢修复你在词典中使用的是谁的文件?你的代码很难理解。我猜这是因为你缩进了代码。你可以寻找一些想法。这个问题是很难理解。如果我对这个问题的理解是正确的,那么这不是StackOverflow的问题。这个问题最好是CodeReview。我不是很确定。@Sedrick我们有一个字典文件,我们用它在用enter the found!=true方法找到拼写错误的单词后检查文本区域中的文本返回到同一个字典,并使用contains术语搜索正确的单词
        }if(found != true){

        lvListView.setStyle("-fx-font-size:18.0;-fx-background-color: white;");
        for(indexSC = 0; indexSC < simpleArray.length;indexSC++){
        if(simpleArray[indexSC].toLowerCase().contains(txtTest.getText().trim().toLowerCase())){
        // array stream foreach filter results to textarea javafx
        List<String> cs = Arrays.asList(simpleArray);

        ArrayList list = new ArrayList<>();
        cs.stream().filter(s -> s.startsWith("someon"))
          //.forEach(System.out::println); 
        .forEach(list :: add);   
        //String aL = list.toString();
        //System.out.println("!!!! aL "+aL);
        //La = list.toString().replace("[", "").replace("]","").replace(",", "").replace(" ", "\n");
        int L = list.size();
        for(int X = 0; X < L;X++){
        String A = (String) list.get(X);
        cboSP.getItems().add(A);
        txaML.appendText(A);
        txaML.appendText("\n");
        lvListView.getItems().add(A);
        System.out.println(" = = L "+L+" Num "+A);
        }

        lvListView.getSelectionModel().selectedItemProperty()
        .addListener((observable, oldValue, newValue) -> {
        System.out.println(newValue);});