0

我在链接列表上使用搜索方法这是我的代码

Node item=head;
 String help=item.getKonten();
 System.out.printf("data to search");
    search=input.nextLine();

    while (help.compareTo(search)>0){
        if (help.equals(search)){
            System.out.println ("index " + index);
            ktemu=1;
        } else {
            item=item.getLink();
            bantu1=item.getKonten();        
        }
        index++;
    }

    if (ktemu == 0){
         System.out.println("data not found");
    }

输出数据:要搜索的 1,2,3,4,5 数据 2 未找到数据任何人都可以指出我的代码哪里出错了所以索引没有显示

4

2 回答 2

2

compareTo方法返回负整数、零或正整数,因为此对象小于、等于或大于指定对象。

因此,当您将 1 与 2 进行比较时,它们会返回负值并-1>0变为 false。所以它脱离了循环。

于 2012-12-05T09:03:20.927 回答
0

只要与bantu1不同,您就在迭代cari,但您使用比较接口进行迭代。为什么不直接使用equals?无论如何,如果您确实想使用比较方法,正如@Quoi 所说,您需要考虑它可能 < 0,因此!=0可能更合适。

这个怎么样:

private boolean find(Object input);
    while (true){
        if(item.equals(input)){
            return true;
        } else {
            if(item.getLink() == null) {
                 return false;
            } else {
                item=item.getLink();
            }
        }
    }
}
于 2012-12-05T09:05:09.973 回答