1 回答

TA貢獻1836條經驗 獲得超13個贊
不幸的是,這個程序有太多問題,無法簡單地解決這個問題。您確實需要縮減程序并努力使其盡可能簡單。你的程序遠比它需要的大。
在同一個文件中不能有兩個公共類。您的“GroceryPackage”類似乎沒有提供任何您無法使用 ArrayList 變量“listofGrocery”本身的方法做的事情,除了跟蹤價格(它不做)。它不必要地使程序復雜化。
您可以嘗試完全刪除它的“public”關鍵字,或者使其成為 Main 的私有或靜態內部類。但是,我建議只是擺脫它。我真的不認為你需要它。
從技術上講,您還沒有達到第 2 步。沒有什么可以防止 ArrayList 中出現重復值。我會用 aHashMap<String, Double>
代替。這將允許您將“雜貨”存儲為字符串,其價格為 Double 值。
您可以在 GroceryPackage 中使用“getter”和“setter”方法來獲取、修改和返回您的 ArrayList,直接使用獲取變量GroceryPackage.listofGrocery
(如果變量是私有的,listofGrocery 將無法使用它),或者只是將其設為你的主要課程。最后一種是最簡單的選擇。
我注意到您實際上從未將“listofGrocery”變量初始化為“GroceryPackage”的屬性。
從風格上講,“listofGrocery”應該是“listOfGrocery”。
您沒有在 GroceryList 中使用“grocery1”屬性。
要解決第二步,籃子上不應添加重復的名稱
要么遍歷數據結構中的所有值,要么使用拋出異?;蚍祷乜深A測類型值的數據結構,如果要添加的值內部有重復值。確保無論您做什么,都不會替換數據結構中已經存在的任何值。
為了解決第三步,“用戶應該能夠刪除指定名稱的雜貨。”
你嘗試給你的“removeGrocery()”方法一個參數,即使它不需要任何參數。此外,clear() 方法會刪除整個 ArrayList 中的所有值。仔細查看可用于您選擇的任何數據結構的方法。
對于第四步,“用戶應該能夠看到購物籃中的所有內容”。
遍歷籃子的所有內容。
總結一下。
我大多避免給你關于你的程序問題的直接答案。但是,希望你能接受我所說的并意識到你哪里出錯了。實際上,有成千上萬種不同的方法可以讓您的程序滿足要求。請務必在線仔細閱讀javadocs。他們是無價的。最后,我注意到您從不在程序中使用任何循環。這些是新手程序員最好的朋友。學會愛他們。
添加回答
舉報