0

我有相当多的 Java 经验,但很少使用任何类型的库存管理系统、销售报告和类似的东西。我正在做一个项目,我有一个过去一年的销售 Excel 报告文件。我可以阅读这篇文章并找到我需要的信息,但我无法弄清楚如何在不使用一堆嵌套 for 循环的情况下每天获取特定商品 (SKU) 的销售数量。我知道必须有一个更简单的方法,但我现在想不出一个。

例如,有一堆关于过去一年售出的 30,000 件商品的信息。我创建了一个 'Item' 对象数组,用于为 'sku' 和 'timestamp' (购买时)提取和设置字符串值。

现在我必须循环浏览并检查每天售出多少商品,但我不确定最好的方法是什么。

我的 Item 数组可能如下所示:

//item[0] ; sku="AKD123"; timestamp="2012-02-01";
//item[1] ; sku="REN134"; timestamp="2012-02-01";
//item[2] ; sku="PIK383"; timestamp="2012-02-01";
//item[3] ; sku="REN134"; timestamp="2012-02-01";

该数组中大约有 100 万个其他项目,但从中可以看到 AKD123 卖出了 1 个,REN134 卖出了 2 个,PIK383 卖出了 1 个。我不确定如何获得这个输出。必须有某种数组方法可以帮助我将其排序为当天的数字,但这可能会导致另一个问题,因为如果某个特定 sku 在 2012-02-01 售出 0 个单位,那么它就不会出现在 excel 中报告。我也不知道给定的报告会有多少不同的 sku,所以这也让我感到不安。

代码会很棒,但即使是关于我需要搜索的建议也会很棒。我觉得我应该已经知道如何做到这一点,但是我睡眠不足,并且在过去的 2 个小时里没有非常耗时的嵌套 for 循环,所以我决定求助于社区。

多谢你们。

4

1 回答 1

0

只需在迭代数组的地方使用 Map 对象(或者最好不要使用数组,直接填充地图),其中键可以是 sku 的串联,日期和值将是计数。因此,如果您想知道在“2012-02-01”销售了多少 sku “REN134”,请检查键“REN134-2012-02-01”的值

如果需求是查询“REN134”全程售出多少件,则需要构建一个key为sku、value为count的map。

让我知道是否需要解决任何特殊情况,因为大多数此类事情都可以通过使用地图来解决。

- 和平。圣克劳特

于 2013-03-07T06:36:04.033 回答