2013-03-07 98 views
0

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

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

现在我必须循环浏览并检查每天销售多少物品,但我不确定这样做的最佳方式是什么。

我的产品阵列可以是这样的:

//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"; 

有关于这个阵列中的一百万其他项目,但这个,你可以看到,AKD123售出1,REN134售出2,PIK383售出1。我不确定如何获得这个输出。必须有某种数组方法可以帮助我将这个数据排序为日数,但这可能会导致另一个问题,因为如果某个SKU在2012年2月1日销售了0个单位,那么它将不会显示在Excel中报告。我也不知道在给定的报告中会有多少不同的skus,所以这也让我感到困扰。

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

谢谢你们。

+0

您可以创建一个'Map >',它包含'>'的值,其中每个时间戳都是不同的日期。 – Vulcan 2013-03-07 06:14:34

回答

0

只需使用Map对象迭代数组(或者更好的是不使用数组,直接填充地图),其中key可以是sku的连接,日期和值将是count。因此,如果您想知道“2012-02-01”上销售的SKU“REN134”有多少项,请检查“REN134-2012-02-01”的价格。

如果要求找出“REN134”全卖的有多少物品,钥匙是SKU的地图,以及需要建造的物品的价值。

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

- 和平。 Sanket Raut

+0

太棒了!我并没有真正使用地图作为主要的游戏开发者,但是这绝对有助于完成这个项目。那么我会使用Map >?并通过Excel文件读取时,使用mapObj.put(SKU,otherMap.put(时间戳,othermap.get(股票)+1))或类似的东西?我没有真正看过地图,但我假设它是这样的? – user1556695 2013-03-07 07:56:40

+0

根据你的报告信息,可以设计类似的数据结构..但你为什么要制作这样的mapmapObj.put(sku,otherMap.put(timestamp,othermap.get(stock)+1))?简单的地图不会满足您的需求? – 2013-03-07 10:05:03