2011-04-25 131 views

回答

0

目前已經是一個「包含」方法:

http://download.oracle.com/javase/6/docs/api/java/util/LinkedList.html#contains(java.lang.Object

如果您的LinkedList的元素只是字符串,它應該工作正常。否則,您需要重寫模型的「等號」方法。

+0

好了,我已經加了我的方法,我的問題。我需要exteranly寫一個find()方法 – 2011-04-25 20:39:08

+0

public boolean find(String s){return this.contains(s); } =) – 2011-04-25 20:41:04

1

通常,您有一個指向列表頭部的指針。您檢查指向的項目是否與您的搜索字符串匹配。如果是,則返回true。如果不是,則將指針移至列表中的下一個項目。如果您到達列表的末尾,則返回false。

(我假設這是家庭作業,所以我不會實際編寫的代碼。如果你告訴我們,一些非工作的代碼,我們會幫你做它的工作。)

編輯補充:如果你正在使用一個鏈表,爲什麼你要傳遞一個棧?無論如何,你發佈的代碼看起來應該可以工作。您應該發佈您用於設置數據的代碼並調用find方法;那裏可能有問題。

你提到的錯誤聽起來像也許你沒有正確傳遞堆棧;你應該可以對Stack的內容做一個foreach循環。

+0

如果你想使用java成語來實現指針,你可以將它公開爲一個迭代器。 – 2011-04-25 20:18:39

+0

ok thanx。但我得到這個錯誤:foreach不適用於表達式類型..我總是得到這個錯誤。並已經腰了大約2個小時,仍然沒有成功.. – 2011-04-25 20:36:25

+0

好吧,我已經將我的方法添加到我的問題..我需要寫一個find()方法exteranly – 2011-04-25 20:38:47

0

聽起來好像你在說你正在實現一個名爲Stack的自定義鏈表實現,並且你正在使用for-each語法遍歷你的列表。爲了使用該語法,你的類需要實現Iterable接口。這意味着你將需要爲您的列表中Iterator爲好,這將提供next()hasNext()remove()方法