2013-03-07 92 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