數據表記錄包含表索引和數值,請對表索引相同的記錄進行合並,即將相同索引的數值進行求和運算,輸出按照key值升序進行輸出。


題目描述

數據表記錄包含表索引和數值,請對表索引相同的記錄進行合並,即將相同索引的數值進行求和運算,輸出按照key值升序進行輸出。


輸入描述:

先輸入鍵值對的個數
然后輸入成對的index和value值,以空格隔開



輸出描述:

輸出合並后的鍵值對(多行)


輸入例子:
4
0 1
0 2
1 2
3 4

輸出例子:
0 3
1 2
3 4


import java.util.Scanner;
import java.util.SortedMap;
import java.util.TreeMap;
 
public class Main {
     public static void main(String[] args) {
         Scanner str =  new Scanner(System.in);
         SortedMap<Integer,Integer> map =  new TreeMap<>();
         int n = Integer.parseInt(str.nextLine());
         for ( int i =  0 ;i<n;i++){
             String[] mid = str.nextLine().split( "\\s+" );
             addPare(map,mid);
         }
         System.out.println(mapToString(map));
     }
     
     private static String mapToString(SortedMap<Integer, Integer> map) {
         // TODO Auto-generated method stub
         StringBuilder builder =  new StringBuilder();
         for (SortedMap.Entry<Integer,Integer>e:map.entrySet()){
             builder.append(e.getKey()).append( " " ).append(e.getValue()).append( "\r" );
         }
         return builder.toString();
     }
 
     private static void addPare(SortedMap<Integer, Integer> map, String[] mid) {
         // TODO Auto-generated method stub
         int key = Integer.parseInt(mid[ 0 ]);
         int value = Integer.parseInt(mid[ 1 ]);
         if (map.containsKey(key)){
             map.put(key, map.get(key) + value);
         } else {
             map.put(key, value);
         }
     }
}
 





免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM