java - 盒子类程序 Java
问题描述
您好,我想制作一个可以存储键值的程序,并且每个用户都使用相同的键添加项目,该值是先前值 + 新值的总和。它看起来像字典,但我需要把它变成一个类。
Box box = new Box()
box.addItem("shoes", 1)
box.addItem("shoes", 3)
box.addItem("jacket", 2)
box.viewAllItem()
输出
--> shoes (4)
jacket (2)
我有点迷失如何定义类......
解决方案
如果要维护插入顺序,可以使用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)
推荐阅读
- node.js - 多部分表单组件“无法 POST/divespotform”无法正常工作 parseInt 问题?
- reactjs - React 上传时不显示图片
- java - 在 Spring 应用程序中禁用 AOP
- c - 在 C 中,read() 只是将文件的前两个元素放入缓冲区
- flutter - flutter - 制作反向线性iprogressindicator
- r - 按日期分配列变量 (R)
- java - 如何访问超类 toString 方法?
- python - 如何保存鼠标位置以供以后在pyautogui(python)中使用
- javascript - 如何将 zip 文件上传到 Firebase 存储
- python - 删除python/pandas中未命名的行和包含某个值的行