3 回答

TA貢獻(xiàn)1821條經(jīng)驗(yàn) 獲得超5個(gè)贊
正如其他答案已經(jīng)說(shuō)過(guò)的那樣,訪問(wèn)不存在的索引時(shí)會(huì)出現(xiàn)問(wèn)題:
books.get(books.size())
索引從0到size()-1,因此size()超出范圍。
您可以使用這樣的 foreach 循環(huán)完全避免索引并使代碼更簡(jiǎn)單:
for (Book book: books)
if (book.contains(neededauthor))
System.out.println(book);
我假設(shè)的類型books是一些類型的集合Book。

TA貢獻(xiàn)2080條經(jīng)驗(yàn) 獲得超4個(gè)贊
我認(rèn)為您的代碼看起來(lái)正確,但有一個(gè)問(wèn)題。
for (int k=0; k<=books.size(); k++) {
如果k
從 0 開始,它不能等于books.size()
,因?yàn)檫@意味著它將for
比 中的元素多經(jīng)過(guò)一次循環(huán)books.size()
。
嘗試將其更改為 for (int k = 0; k < books.size(); k++) {
除此之外,如果您的 ArrayList 中books
有值,那么您的代碼應(yīng)該可以工作。

TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超3個(gè)贊
用這部分k<books.size()
代替k<=books.size()
它應(yīng)該只有不到。不小于等于。還將您的方法名稱更改為,findBook()
因?yàn)樗蛔裱?Java 駱駝表示法
添加回答
舉報(bào)