Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/388.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 组合2个哈希映射并返回字符串_Java_Hashmap - Fatal编程技术网

Java 组合2个哈希映射并返回字符串

Java 组合2个哈希映射并返回字符串,java,hashmap,Java,Hashmap,我正在进行数字技术评估。这是一个在比萨饼店存储顾客比萨饼、附加品和信息的程序。在我的确认窗口中,我需要打印他订购的所有比萨饼。以下是我的哈希图: private HashMap<Integer, String> pizzas = new HashMap<Integer, String>(); private HashMap<String, Integer> pizzas_count = new HashMap<String, Integer>();

我正在进行数字技术评估。这是一个在比萨饼店存储顾客比萨饼、附加品和信息的程序。在我的确认窗口中,我需要打印他订购的所有比萨饼。以下是我的哈希图:

private HashMap<Integer, String> pizzas = new HashMap<Integer, String>();
private HashMap<String, Integer> pizzas_count = new HashMap<String, Integer>();

任何帮助都将不胜感激。

在第一次将
bbq
pizza插入pizza map后,任何后续插入都将增加
“bbq”
的计数器,如下代码所示:

if(pizzas.containsValue(name)){ // if "bbq" already exist, increment its counter
                    // but is it really happening?
        int count = pizzas_count.get(name);
        pizzas_count.remove(name);
        pizzas_count.put(name, count++); 
              // this line is not having any effect why?
    }else{
        pizzas.put(pizzas.size(), name);
        pizzas_count.put(name, 1);
    }
在你的代码中
pizzas_count.put(name,count++)根本没有任何效果。这一行实际上相当于:

{
    int count = pizzas_count.get(name);
    pizzas_count.put(name, count); // count wasn't changed
    count = count + 1;
   }
而是做
pizzas\u count.put(name++count)。其余的事情都如您所写的那样正常工作修复后,输入以下代码:

    addPizza("pizza");
    addPizza("extra");
    addPizza("pizza");
    System.out.println(getOrder());
产生以下输出:

{0=pizza, 1=extra}
pizza
extra
2 x pizza
1 x extra

您可能想创建一个
Pizza
类,这样可以简化很多事情这是在Order类中。这是order类,您仍然可以创建
Pizza
类,将
Pizza
类放入
order
类中。有点像你做的,只是这次它是一个类,而不是一堆
哈希映射<代码>HashMaps
有它们的位置,但我不认为这是它。谢谢!这不是我想要的,但你确实帮助了我走得更远。我在主要问题中添加了getOrder返回的内容。也更新了答案。我认为如果你现在设置
++counter
而不是
counter++
的话,它返回的PIZZAS EXTRASA很好的设计就是用
字符串pizzaType
int pizzaCount
声明一个
Pizza
类,并用它创建一个
HashMap
。不过,请从头到尾再通读一遍YOUR代码。我认为我没有看到任何错误。。。。。下面是该类的更新版本。
    addPizza("pizza");
    addPizza("extra");
    addPizza("pizza");
    System.out.println(getOrder());
{0=pizza, 1=extra}
pizza
extra
2 x pizza
1 x extra