MAP中怎么让相同键值相加
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MAP中怎么让相同键值相加相关的知识,希望对你有一定的参考价值。
使用双重for循环来做,先从map里面去一个键的值,然后再把改建和map里面的所有键比较,如果有就相加,没有就输出;具体算法如下:
Map<String,Integer> map = new HashMap<String,Integer>();
public void add(String key,Integer value)
if(map.get(key)!=null)
map.put(key,map.get(key)+value);
else
map.put(key,value);
参考技术A
std::map的键是不能重复的,相同键的话,直接m[键]+=值就是了。
#include <map>#include <cstdio>
int main(void)
std::map<int, int> map;
map.insert(std::make_pair(0,1));
printf("map[0] = %d\\n", map[0]);
map[0] += 3;
printf("map[0] = %d\\n", map[0]);
return 0;
追问
我要的是java代码,你可以给我吗
php键值相同的项数值相加
1 php 合并一个二维数组相同项,数量则相加 2 3 $arr = array( 4 array( 5 ‘user_id‘ => 100, 6 ‘goods_id‘ => 10, 7 ‘number‘ => 1, 8 ), 9 array( 10 ‘user_id‘ => 100, 11 ‘goods_id‘ => 10, 12 ‘number‘ => 2, 13 ), 14 array( 15 ‘user_id‘ => 100, 16 ‘goods_id‘ => 10, 17 ‘number‘ => 2, 18 ), 19 array( 20 ‘user_id‘ => 100, 21 ‘goods_id‘ => 10, 22 ‘number‘ => 2, 23 ), 24 ); 25 理想结果: 26 $arr = array( 27 array( 28 ‘user_id‘=> 100, 29 ‘goods_id‘ => 10, 30 ‘number‘ => 7, 31 ), 32 33 ); 34 35 36 foreach($arr as $k=>$v){ 37 if(!isset($item[$v[‘user_id‘]])){ 38 $item[$v[‘user_id‘]]=$v; 39 }else{ 40 $item[$v[‘user_id‘]][‘number‘]+=$v[‘number‘]; 41 } 42 } 43 print_r($item);
以上是关于MAP中怎么让相同键值相加的主要内容,如果未能解决你的问题,请参考以下文章