正在使用从现有ArrayList的HashSet计算的合计创建新集合



我正在与以下问题作斗争:

我正在建立一个订单系统。我有一个ArrayList"sales",该列表包含一些变量和一个HashSet,其中包含作为订单一部分出售的项目。有一个Part类,其中包含用于部件名称(getName(和部件价格(getPrice(的getter。

"销售"阵列列表包含:(int orderNumber, LocalDate date, OrderItem orderItem)

看起来是这样的:

订单:1,日期:2020-02-23,项目:[部件:显示器,数量:3,部件:CPU,数量:2]

订单:2,日期:2020-02-23,项目:[零件:耳机,数量:1,零件:手机壳,数量:1]

订单:3,日期:2020-02-23,项目:[部件:CPU,数量:10,部件:键盘,数量:10]

每个OrderItem包含:(Part part, int quantity)。Part类包含(String partName, double price)

我想做的是创建一个新的集合,列出一天内售出的零件总数,如下所示:

监视器3

CPU 12

耳机1

案例1

键盘10

我该怎么做?

我试图使用HashMap<String, Integer>为您编写一些内容,其中将包含您的零件及其当天相应的销售数量的键值对列表。

希望能有所帮助:

public static void main(String[] args) {
Map<String, Integer> map = new HashMap<>();
for (Orderitem item: listOfOrderItems) { // here you need to get a list of your ordered items for the day
Part part = item.getPart(); // here you need some form of a getter to access the given part from the given Orderitem
String partName = part.getName();
if (!map.containsKey(partName)) {
map.put(partName, item.getQuantity());
} else {
map.put(partName, map.get(partName) + item.getQuantity());
}
}
}

最新更新