盒类程序java

yizd12fk  于 2021-07-11  发布在  Java
关注(0)|答案(1)|浏览(187)

关闭。这个问题需要更加突出重点。它目前不接受答案。
**想改进这个问题吗?**通过编辑这篇文章更新这个问题,使它只关注一个问题。

上个月关门了。
改进这个问题
你好,我想做一个程序,可以存储键值和每个用户添加相同的键值项,值是以前的值+新值的总和。它看起来像字典,但我需要把它编成一个类。

Box box = new Box()

box.addItem("shoes", 1)
box.addItem("shoes", 3)
box.addItem("jacket", 2)

box.viewAllItem()

输出

--> shoes (4)
    jacket (2)

我有点不知道如何定义类。。。

vngu2lb8

vngu2lb81#

如果要保持插入顺序,可以使用linkedhashmap:
box.java文件:

import java.util.LinkedHashMap;
import java.util.Map;

public class Box {
    private final Map<String, Integer> items;

    public Box() {
        this.items = new LinkedHashMap<>();
    }

    public void addItem(String name, int quantity) {
        this.items.put(name, this.items.getOrDefault(name, 0) + quantity);
    }

    public void viewAllItems() {
        for (Map.Entry<String, Integer> entry : this.items.entrySet()) {
            System.out.printf("%s (%d)%n", entry.getKey(), entry.getValue());
        }
    }
}

main.java文件:

public class Main {
    public static void main(String[] args) {
        Box box = new Box();
        box.addItem("shoes", 1);
        box.addItem("shoes", 3);
        box.addItem("jacket", 2);
        box.viewAllItems();
    }
}

输出:

shoes (4)
jacket (2)

相关问题