首先让我说,我对java是个新手,但不是很新。
我正在寻找建立一个餐厅菜单应用程序使用迭代器模式。所以我的问题是实现一个字符串名为item,double value的2d数组的最佳数组类型是什么?
样品
ArrayList<String> menuItems;
public PancakeHouseMenu() {
menuItems = new ArrayList<String>();
addItem("K&B's Pancake Breakfast",5);
String[][] menuItems;
public DinerMenu() {
menuItems = new String[MAX_ITEMS];
addItem("Vegetarian BLT",5);
或者我可以使用hashmaps,如果可以的话,在代码和运行时什么是最有效的。
我希望能深入了解在上面给定的场景中使用数组的情况。
2条答案
按热度按时间hgtggwj01#
在这种情况下,hashmap将比数组更有效。hashmaps提供了固定时间的查找、插入和删除(平均)。
实现如下所示
p5cysglq2#
是 java 。java名义上是类型化的。你有概念吗?给它起个名字!
如果你想在菜单上列出这些,那么。。列一张清单:
就这么简单。
String[][]
大部分是无用的;你不能用字符串来表示价格,你也不想这样做,你的代码将会陷入一个不可读的混乱。String
作为一种类型,它的描述性远不如MenuItem
并且没有机会在menuitem类中编写与其所属的菜单项本身相关的所有代码。注意:您确实需要在menuitem类上实现字符串、equals和hashcode。您可以自己编写它们,或者让ide生成它们,或者使用lombok之类的工具,或者如果您使用的是java16并且有预览功能,则可以使用记录。