思路:
1.把输入的键值对保存在map集合中,在保存的过程对重复的key的value求和。
2.把map集合保存为list集合,使用Collections.sort对list进行升序排列。
import java.util.*; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); HashMap<Integer,Integer> map=new HashMap<>(); // 注意 hasNext 和 hasNextLine 的区别 int quantity=in.nextInt(); while (in.hasNextInt()) { // 注意 while 处理多个 case int key=in.nextInt(); int value=in.nextInt(); map.put(key,map.getOrDefault(key,0)+value); } ArrayList<Map.Entry<Integer,Integer>> list=new ArrayList<Map.Entry<Integer,Integer>>(map.entrySet()); Collections.sort(list,new Comparator<Map.Entry<Integer,Integer>>(){ @Override public int compare(Map.Entry<Integer,Integer> o1,Map.Entry<Integer,Integer> o2){ return o1.getKey()-o2.getKey(); } }); for(int i=0;i<list.size();i++){ System.out.println(list.get(i).getKey()+" "+list.get(i).getValue()); } } }