题解 | #字符串分隔#

合并表记录

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

思路:
1.把输入的键值对保存在map集合中,在保存的过程对重复的key的value求和。
2.把map集合保存为list集合,使用Collections.sort对list进行升序排列。

import java.util.*;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        HashMap<Integer,Integer> map=new HashMap<>();
        // 注意 hasNext 和 hasNextLine 的区别
        int quantity=in.nextInt();
        while (in.hasNextInt()) { // 注意 while 处理多个 case
            int key=in.nextInt();
            int value=in.nextInt();
            map.put(key,map.getOrDefault(key,0)+value);
        }
        ArrayList<Map.Entry<Integer,Integer>> list=new ArrayList<Map.Entry<Integer,Integer>>(map.entrySet());
        Collections.sort(list,new Comparator<Map.Entry<Integer,Integer>>(){
            @Override
            public int compare(Map.Entry<Integer,Integer> o1,Map.Entry<Integer,Integer> o2){
                return o1.getKey()-o2.getKey();
            }
        });
        for(int i=0;i<list.size();i++){
            System.out.println(list.get(i).getKey()+" "+list.get(i).getValue());
        }
    }
}
全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务