关键就是TreeMap,一开始我理解错了,以为是按key输入的顺序排序,用LinkedHashMap反而报错了。

import java.util.Scanner;
import java.util.*;
import java.util.Map.*;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Map<Integer,Integer> map = new TreeMap<Integer,Integer>();
        Scanner in = new Scanner(System.in);
        // 首先确定行数
        if (in.hasNextLine()){
            int length = in.nextInt();
        }
        while(in.hasNextLine()){
            String line = in.nextLine();
            String[] spl = line.split(" ");
            if(spl.length == 2)
            {
                int a = Integer.parseInt(spl[0]);
                int b = Integer.parseInt(spl[1]);
                if (map.containsKey(a)){
                    map.put(a,map.get(a) + b);
                }
                else
                {
                    map.put(a,b);
                }
            }

        }

        for(Map.Entry<Integer,Integer> entry : map.entrySet()){
            System.out.println(entry.getKey() + " " + entry.getValue());
        }
    }
}