java - int binarySearch 数组列表

标签 java arrays arraylist binary

嗨,我显然仍在尝试学习 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/

相关文章:

java - 如果我再次使其可用, "finalized"对象会发生什么情况?

java - Findbugs & Ant - 停止特定违规的构建

java - 将迭代器添加到我的数组列表中

java - 保存的数据与数据库内容不对应SQLite litepal

java - 使用类加载器破解单例 - Java Web 应用程序中的多例

javascript - Javascript 对象中的二维数组

c++ - C++ 中 Armadillo 矩阵维度的动态参数化

javascript - 计算数组中多个对象的属性

javascript - Android Collections.min NoSuchElementException

java - 如何更快地对 ArrayList 进行排序?