首页 > 解决方案 > 盒子类程序 Java

问题描述

您好,我想制作一个可以存储键值的程序,并且每个用户都使用相同的键添加项目,该值是先前值 + 新值的总和。它看起来像字典,但我需要把它变成一个类。

Box box = new Box()

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

box.viewAllItem()

输出

--> shoes (4)
    jacket (2)

我有点迷失如何定义类......

标签: javaclass

解决方案


如果要维护插入顺序,可以使用LinkedHashMap

盒子.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());
        }
    }
}

主.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)

推荐阅读