数据表记录包含表索引和数值,请对表索引相同的记录进行合并,即将相同索引的数值进行求和运算,输出按照key值升序进行输出。...

本文介绍了一种针对数据表中相同索引记录进行合并的算法实现。该算法使用Java编程语言,通过TreeMap来存储并合并具有相同索引的记录,最终按索引升序输出合并后的键值对。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目描述

数据表记录包含表索引和数值,请对表索引相同的记录进行合并,即将相同索引的数值进行求和运算,输出按照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);
         }
     }
}
 




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值