例如,给定的数据我将如何使用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
例如,给定的数据我将如何使用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
一个HashMap中,一键只能与一个值相关联,所以你需要使用一个HashMap<Integer, List<Integer>>
或MultiMap来实现这一点。
其基本思想是,您可以在哈希表中反复查找特定于名称的累计和,并向其中添加下一个值。在伪代码:
for name, qty in input
hashtable[name] += qty
不同的语言,您可能需要显式地检查是否有一个为“名”现有的散列表条目,并创建一个与最初的“数量”值。
这是迄今为止最好的方法。 – hfontanez
首先是否可以为同一个键多个值? –
@AndrewT。这不可能。地图将更新为最新值。 – hfontanez
@TonyD我承认错误并为此道歉。 –