注意:这题的重点是千万不要用spilt以空格分隔,会报数组越界异常
题目描述
数据表记录包含表索引和数值(int范围的整数),请对表索引相同的记录进行合并,即将相同索引的数值进行求和运算,输出按照key值升序进行输出。
输入描述:
先输入键值对的个数
然后输入成对的index和value值,以空格隔开
输出描述:
输出合并后的键值对(多行)
示例1
输入
4 0 1 0 2 1 2 3 4
输出
0 3 1 2 3 4
import java.util.*; public class Main{ public static void handler(Map<String,Integer> map, String key, Integer val) { // String[] arrays = line.split(" "); // String key = arrays[0]; // int val = Integer.parseInt(arrays[1]); if(map.containsKey(key)) { val += map.get(key); } map.put(key, val); } public static void print(Map<String,Integer> map) { Set<String> keySet = map.keySet(); for(String key : keySet) { System.out.println(key + " " + map.get(key)); } } public static void main(String[] args) { Scanner sc = new Scanner(System.in); int count; Map<String, Integer> map = new TreeMap<>(); while(sc.hasNext()) { count = sc.nextInt(); while(count-- > 0) { handler(map, String.valueOf(sc.nextInt()), sc.nextInt()); } } sc.close(); print(map); } }