package homework;
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
import java.util.function.BiFunction;
//题目:将相同key的value值进行累加并合并
public class work02 {
public static void main(String[] args) {
// 提示用户想创建几组entry(键值对),并保存到t中
System.out.println("请输入想创建几组key与value:");
Scanner input1 = new Scanner(System.in);
int t = input1.nextInt();
// 创建HashMap,因为key唯一
Map<Integer, Integer> map = new HashMap<Integer, Integer>();
// 提示用户输入t对:key和value,保存到str字符串中
System.out.println("请输入key和value,中间用空格隔开");
for (int i = 0; i < t; i++) {
Scanner input2 = new Scanner(System.in);
String str = input2.nextLine();
// 获取用户输入的key:先用字符串截取0~空格之前 的字符串,
// 再强制类型转换为int类型保存到key中
// 获取用户输入的value:先用字符串截取空格之后1位~结尾之前 的字符串,
// 再强制类型转换为int类型保存到value中
int key = Integer.parseInt(str.substring(0, str.indexOf(" ")));
int value = Integer.parseInt(str.substring(str.indexOf(" ") + 1, str.length()));
// 如果map中的key已经存在,第一个key所对应的value加上下一个key所对应的value覆盖成新的value
if (map.containsKey(key)) {
int value1 = map.get(key);
value = value + value1;
}
//给map中加入key,以及重复key所对应的value相加后的value
map.put(key, value);
}
//输出map
System.out.println(map);
}
}