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中怎么让相同键值相加的主要内容,如果未能解决你的问题,请参考以下文章

PHP计算二维数组中一维数组相同键名的,键值相加

java 怎么样获取Map中第几个键值对

怎么在 c++ 的 map 里面 放 key-map键值对

zabbix 取多台主机且相同键值的和

map 中的键值都可以是啥类型的啊

SQL执行插入时,遇到重复键值时,如何设置才能让新插入的数据覆盖原有旧数据;要用存储过程么?