如何检查用户输入的值是否重复,以便增加数量

问题描述 投票:0回答:1
package stack;

import java.util.*;

public class Main {

    public static void main(String[] args) {

        Scanner scanner = new Scanner(System.in);
        Stack<String> stack = new Stack<String>();
        while (true) {
         
            String order = scanner.next();

            if (order.equalsIgnoreCase("OUT")) {
                break;
            }

            boolean isValidItem = isValidMenuItem(order);
            if (isValidItem) {
                stack.push(order);
            } else {
                System.out.println("Invalid item. Please choose from the menu.");
            }
        }
        while (!stack.isEmpty()) {
            int quantity = 0;
            int totalCost = 0;
            
            
            System.out.println(quantity + stack.pop() + totalCost);
        }

        System.out.println("END");
        scanner.close();
    }

    private static boolean isValidMenuItem(String item) {
        String[] menu = {"Cheeseburger $6", "pasta $6", "fries $3", "chicken $20", "soda $2"};
        for (String menuItem : menu) {
            if (menuItem.equalsIgnoreCase(item)) {
                return true;
            }
        }
        return false;
    }
}

我如何检查堆栈列表以便可以增加数量。 如果输入:芝士汉堡、苏打水、鸡肉、芝士汉堡。芝士汉堡应该增加。

data-structures stack
1个回答
0
投票

我认为您想使用堆栈来存储给定的项目顺序,但如果您使用以键为项目、以值作为项目计数的 linkedhashmap,则它会维护项目的顺序和计数。当您获取项目作为输入时,检查项目是否已存在于地图中。如果存在则增加其值,否则将其计数初始化为 1。

Map mp = new LinkedHashMap<>();

if(mp.contains(item))

mp.put(item,mp.get(item)+1);

否则 mp.put(项目,1);

最后,您可以迭代地图并获取项目及其数量。

© www.soinside.com 2019 - 2024. All rights reserved.