用于有选择地选择选项的 HashMap

HashMaps for selectively choosing Options

我正在尝试创建一个向用户显示餐厅的应用程序。 然后用户可以 select 所提供菜单上的项目:

HashMap<String, Double> mcDonMenu = new HashMap<>();
         mcDonMenu.put("Cheese Burger", 1.99);
         mcDonMenu.put("Cheese Burger with Bacon", 2.99);
         mcDonMenu.put("Double Cheese Burger", 2.99);
         mcDonMenu.put("Double Cheese Burger with Bacon", 3.99);
         mcDonMenu.put("Vaggie Burger", 2.50);
         System.out.println(mcDonMenu);

到目前为止我已经有了这个,我在过去几天对此进行了研究,我来 Stack overflow 寻求帮助。我了解如何做其他所有事情,我对 HashMaps 也很陌生。我查看过的所有资源对如何 select 主动选择一个项目并将该项目添加到新数组或 HashMap 以供稍后备份以进行“结帐”没有帮助。

如有任何指导,我们将不胜感激。

我建议阅读 HashMap 的文档,以便快速回答您的问题。 HashMap 将允许您使用 get() 方法快速访问,该方法将您的键作为参数并 return 值。

例如,在您的代码中 double choice = mcDonMenu.get("Cheese Burger"); 将在变量中存储 1.99。密钥区分大小写,记住这一点很重要。

其他有用的方法是 .contains(),它可以检查您的地图中是否存在某些东西,以及 keySet(),它将 return 一组您的所有键。我链接的文档中提供了所有方法

我建议你创建一个枚举 MenuItem

像这样,

public enum MenuItem { 
    CHEESE_BURGER(1.99),
    VEG_BURGER(0.99);
    private double price;
    public MenuItem(double price){ this.price = price; }
    public double getPrice(){
         return this.price;
    }
};

一旦你构建了这个,你就可以拥有一个 MenuItem 列表,而不是一个 Map。

更好的替代方法是创建一个 class MenuItem 及其属性。当您开始向 MenuItem 添加多个属性时,这将帮助您长期 运行。