2015-07-10 33 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