2014-03-28 37 views
1

嗨我顯然還在嘗試學習Java並且無法在網站上找到答案。int binarySearch arrayList

基本上即時通訊應該添加一個名爲的binarySearch

新的私有的,通用的方法,該方法應該執行遞歸二進制搜索算法,它看起來已經成爲那些在姓氏字段中的值相同值的元素傳入searchLastName方法參數。

不過,我覺得我有些正確的,但我在這兩個不用彷徨的得到一個錯誤(錯誤:無法找到符號)

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

什麼是'get'意思是?你正在使用正確的語法來實現你想要實現的目標嗎? –

+0

'get()'是一種方法,所以確保你使用'()'也傳遞它需要的參數 –

+0

我應該調用遞歸方法並傳遞數組列表並傳遞姓氏 – user3347866

回答

0

在仰視ArrayList文檔,可以很容易地這個類別不包含任何這樣的字段,稱爲get。編譯器將此字段解釋爲它找不到的符號。爲了糾正你的代碼使用正確的方法簽名

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

的一些指標,你要訪問的元素的索引。我不是要注意的是something是一個字段和something()是一種方法。

我相信你有陣列的一些經驗primitive datatypes。你還記得如何從數組中獲取元素嗎?

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

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

+0

謝謝出來了! – user3347866

+0

@ user3347866如果有效,請不要忘記接受答案! :-) – Astrobleme