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”属性。
要解决第二步,篮子上不应添加重复的名称
要么遍历数据结构中的所有值,要么使用抛出异常或返回可预测类型值的数据结构,如果要添加的值内部有重复值。确保无论您做什么,都不会替换数据结构中已经存在的任何值。
为了解决第三步,“用户应该能够删除指定名称的杂货。”
你尝试给你的“removeGrocery()”方法一个参数,即使它不需要任何参数。此外,clear() 方法会删除整个 ArrayList 中的所有值。仔细查看可用于您选择的任何数据结构的方法。
对于第四步,“用户应该能够看到购物篮中的所有内容”。
遍历篮子的所有内容。
总结一下。
我大多避免给你关于你的程序问题的直接答案。但是,希望你能接受我所说的并意识到你哪里出错了。实际上,有成千上万种不同的方法可以让您的程序满足要求。请务必在线仔细阅读javadocs。他们是无价的。最后,我注意到您从不在程序中使用任何循环。这些是新手程序员最好的朋友。学会爱他们。
添加回答
举报