您好我显然仍在尝试学习java并且无法在网站上找到答案。
基本上我应该添加一个名为binarySearch的新的私有通用方法
该方法应该实现递归二进制搜索算法,它会查找与lastLameName方法参数中传递的值相同的姓氏字段值。
但是,我认为我有点正确,但我在 .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 );
答案 0 :(得分:0)
在查找ArrayList
文档时,可以很容易地说这个类不包含任何名为get
的字段。编译器将此字段解释为无法找到的符号。为了纠正您的代码,使用正确的方法签名:
...
if (list.get (someIndex).compareTo (searchLastName) )
...
某个索引是您要访问的元素的索引。我要注意 something
是一个字段, something ()
是一种方法。
我确信您对 primitive datatypes
数组有一些经验。你还记得如何从数组中获取元素吗?
int a = someArray [someNumber]; // 0 <= someNumber < someArray.length
ArrayList#get ()
方法以类似的方式工作。