嗨,我显然仍在尝试学习 java,但在网站上找不到答案。
基本上我应该添加一个新的私有(private)通用方法,称为binarySearch
该方法应该实现递归二分搜索算法,它会查找姓氏字段的值与 searchLastName 方法参数中传递的值具有相同值的元素。
但是,我认为我是正确的,但我在 .get 上都遇到错误(错误:找不到符号)
private static < E extends People > int binarySearch(ArrayList<E> list, int first, int last, String searchLastName)
{
int middle;
if(first > last )
return -1;
middle = (first + last) /2;
if (list.get.compareTo(searchLastName))
{
return middle;
}
else if (list.get.compareTo(searchLastName) > last)
{
return binarySearch(list, middle + 1, last, searchLastName);
}
else return binarySearch(list, first, middle - 1, searchLastName );
最佳答案
查找 ArrayList
从文档中可以很容易看出,此类不包含任何名为 get
的字段。编译器将此字段解释为它找不到的符号。为了更正您的代码使用正确的方法签名:
...
if (list.get (someIndex).compareTo (searchLastName) )
...
某个索引是您要访问的元素的索引。我不想让你注意到 something
是一个字段,something ()
是一个方法。
我确信您对原始数据类型数组
有一些经验。您还记得如何从数组中获取元素吗?
int a = someArray [someNumber]; // 0 <= someNumber < someArray.length
ArrayList#get ()
方法的工作原理类似。
关于java - int binarySearch 数组列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22703737/