• 牛客网-华为机试-合并表记录


    注意:这题的重点是千万不要用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);
        }
    }
  • 相关阅读:
    MyBatis常见面试题以及解读
    如何防止sql注入攻击
    宝塔Linux面板基础命令
    Centos7配置静态ip
    宝塔Linux面板安装
    idea中安装阿里巴巴的代码规范插件
    idea中快速将类中的属性转为Json字符串的插件
    创建线程的四种方式
    sleep()方法与wait()方法的区别
    解决线程安全的几种方式
  • 原文地址:https://www.cnblogs.com/zhouquan-1992-04-06/p/13799916.html
Copyright © 2020-2023  润新知