int binarySearch arrayList

时间:2014-03-28 03:39:12

标签: java arrays arraylist binary

您好我显然仍在尝试学习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 );

1 个答案:

答案 0 :(得分:0)

在查找ArrayList文档时,可以很容易地说这个类不包含任何名为get字段。编译器将此字段解释为无法找到的符号。为了纠正您的代码,使用正确的方法签名

...
if (list.get (someIndex).compareTo (searchLastName) )
...

某个索引是您要访问的元素的索引。我要注意 something 是一个字段, something () 是一种方法。

我确信您对 primitive datatypes 数组有一些经验。你还记得如何从数组中获取元素吗?

int a  = someArray [someNumber]; // 0 <= someNumber < someArray.length

ArrayList#get ()方法以类似的方式工作。