【问题标题】:Get IndexOf method- binary search获取 IndexOf 方法-二分查找
【发布时间】:2013-12-03 01:48:20
【问题描述】:

帮助比较names1[middle].compareTo (value) 行。我收到以下编译器错误:

1 error found:
compareTo(java.lang.String) in java.lang.String cannot be applied to (int) 

这是我的代码

public int indexOf(String word)
{

    public int getIndex(String [] names1, int value)   
    {     
        int bottom = 0; 
        int top = names1.length-1;
        int middle;
        boolean found = false;
        int location = -1;

        while (bottom <= top&& !found)     
        {      
            middle = (bottom + top) / 2;            
            if (names1[middle].equals (value))       
            {     
                found = true;
                location = middle;
            }      
            else if (names1[middle].compareTo (value))  
            {   
                bottom = middle +1;   
            }       
            else       
            {       
                top = middle -1;    
            }    
            return location;  
        }    

    } 

【问题讨论】:

    标签: java arrays algorithm sorting binary-search


    【解决方案1】:

    由于names1String[]names1[middle]String。另一方面,value 参数是int。您得到的编译器错误是由于您无法使用String#compareToStringint 进行比较。要解决此问题,您可能需要更改参数类型。

    此外,即使您进行此更改,我也不认为您的 if 声明是合法的。 compareTo 返回一个 int,它表示值如何相互关联,而不是 boolean 表示它们是否相等。您需要更新此声明以考虑到这一点。

    希望这会有所帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-07-22
      • 2011-11-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-05
      • 1970-01-01
      • 2011-10-21
      相关资源
      最近更新 更多