题解 | #合并表记录#为什么比代码看起来少的方案要快

合并表记录

https://www.nowcoder.com/practice/de044e89123f4a7482bd2b214a685201

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Scanner;
import java.util.Set;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args)  {
       Scanner in = new Scanner(System.in);
        String num = in.nextLine();
        int id = Integer.parseInt(num);

        Map<String,Long> mp = new HashMap<>();

        while(id >0){
            String kv = in.nextLine();
            id--;

            String[] sa = kv.split(" ");

            long i = Integer.parseInt(sa[1]);
            if (mp.containsKey(sa[0])){
                Long old = mp.get(sa[0]);
                mp.put(sa[0],old + i);
            }else {
                mp.put(sa[0],i);
            }
        }
        Set<Map.Entry<String, Long>> entries = mp.entrySet();

        List<Map.Entry<String, Long>> entries1 = new ArrayList<>(entries);

        Collections.sort(entries1, new Comparator<Map.Entry<String, Long>>() {
            @Override
            public int compare(Map.Entry<String, Long> o1, Map.Entry<String, Long> o2) {
                return Integer.parseInt(o1.getKey()) - Integer.parseInt(o2.getKey());
            }
        });

        entries1.forEach(e -> System.out.println(e.getKey()+" "+e.getValue()));
    }
}

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-23 14:10
码农索隆:成年人最直白的答复:已读不回
点赞 评论 收藏
分享
码农索隆:想看offer细节
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务