Java使用compareTo方法,但通过打印并返回布尔值

时间:2017-05-13 23:05:10

标签: java

我试图通过以下方法进行搜索,但是当我尝试按字符串列表和字符串进行搜索时,它会通过print out返回true但返回false返回false。

public Boolean Search(List<E> list, E e){
    if(list.size() == 1){
        //here
        System.out.println(list.get(0).compareTo(e)==0);
        return (list.get(0).compareTo(e) == 0);
    }
    if(list.get(list.size()/2).compareTo(e) == 0){
        return true;
    }
    else{
        if(list.get(list.size()/2).compareTo(e) >0){
            Search(list.subList(list.size()/2-1,list.size()-1),e);
        }
        else{
            Search(list.subList(0,list.size()/2),e);
        }
    }
    return false;
}

1 个答案:

答案 0 :(得分:0)

在方法的后半部分,您只需递归调用Search,但会丢弃结果。这是你的错误。而是返回递归调用的结果。