题解 | #合并表记录#重点在排序,利用lambda表达式排序

合并表记录

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

import java.io.*;
import java.util.*;
import java.util.Map;

public class Main{
    public static void main(String[] args) throws Exception{
        BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
        String str;
        while((str = bf.readLine()) != null){
            int num = Integer.valueOf(str);
            Map<Integer,Integer> map = new HashMap<>();
            for(int i = 0;i < num;i++){
                String strnum = bf.readLine();
                String[] word = strnum.split(" ");
                int num1 = Integer.valueOf(word[0]);
                int num2 = Integer.valueOf(word[1]);                          
                map.put(num1,map.getOrDefault(num1,0) + Integer.valueOf(word[1]));
            }
            ArrayList<Map.Entry<Integer, Integer>> list = new ArrayList<>(map.entrySet());
            Collections.sort(list, (a, b) -> a.getKey() - b.getKey());
            for (Map.Entry<Integer, Integer> entry : list) {
                System.out.println(entry.getKey() + " " + entry.getValue());
            }
        }
    }
}
全部评论

相关推荐

joe2333:怀念以前大家拿华为当保底的日子
点赞 评论 收藏
分享
10-24 11:10
山西大学 Java
若梦难了:哥们,面试挂是很正常的。我大中厂终面挂,加起来快10次了,继续努力吧。
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务