2015-07-10 43 views
-3

例如,給定的數據我將如何使用HashTable或HashMap進行計數?

Name: 1234, Qty: 100 
Name: 1234, Qty: 100 
Name: 1234, Qty: 100 
Name: 1234, Qty: 200 
Name: 1234, Qty: 200 

的期望是:

Name: 1234, Qty: 700 
+0

首先是否可以爲同一個鍵多個值? –

+0

@AndrewT。這不可能。地圖將更新爲最新值。 – hfontanez

+0

@TonyD我承認錯誤併爲此道歉。 –

回答

0

一個HashMap中,一鍵只能與一個值相關聯,所以你需要使用一個HashMap<Integer, List<Integer>>MultiMap來實現這一點。

2

其基本思想是,您可以在哈希表中反覆查找特定於名稱的累計和,並向其中添加下一個值。在僞代碼:

for name, qty in input 
    hashtable[name] += qty 

不同的語言,您可能需要顯式地檢查是否有一個爲「名」現有的散列表條目,並創建一個與最初的「數量」值。

+0

這是迄今爲止最好的方法。 – hfontanez