题解 | #合并表记录#

合并表记录

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

import java.util.*;
public class Main{
    public static void main(String [] args){
        //Map自带的方法containsKey()
        /*Scanner sc=new Scanner(System.in);
        while(sc.hasNext()){
            int n=sc.nextInt();
            Map<Integer,Integer> map=new HashMap<>(n);
            for(int i=0;i<n;i++){
                int a=sc.nextInt();
                int b=sc.nextInt();
                if(map.containsKey(a)){
                    map.put(a,map.get(a)+b);
                }else{
                    map.put(a,b);
                }
                //map.put(sc.nextInt(),sc.nextInt());
            }
            for(Integer a:map.keySet()){
                System.out.println(a+" "+map.get(a));
            }
        }*/
        
        /*==========================================*/
        //使用HashMap自带的getOrDefault(key,default)方法,获取键key的值,key不存在则默认default
        /*Scanner sc=new Scanner(System.in);
        while(sc.hasNext()){
            int n=sc.nextInt();
            //Map<Integer,Integer> map=new HashMap<Integer,Integer>();//不加初始化容量大小,输出结果无序
            Map<Integer,Integer> map=new HashMap<>(n);
            //Map<Integer,Integer> map=new TreeMap<>();//TreeMap有序
            for(int i=0;i<n;i++){
                int key=sc.nextInt();
                int value=sc.nextInt();
                map.put(key,map.getOrDefault(key,0)+value);
            }
            //打印输出map
            //1.map.keySet()
            for(Integer key:map.keySet()){
                System.out.println(key+" "+map.get(key));
            }
            //2.while循环(Iterator+map.keySet())
            Set<Integer> set=map.keySet();
            Iterator<Integer> it=set.iterator();
            while(it.hasNext()){
                Integer key=it.next();
                System.out.println(key+" "+map.get(key));
                //System.out.println(it.next()+" "+map.get(it.next()));错误,it.next()获取元素值,key和值对不上
            }
            
            //3.while循环(Iterator  +  Map.Entry<Key, Value>)
            Iterator<Map.Entry<Integer,Integer>> it=map.entrySet().iterator();
            while(it.hasNext()){
                Map.Entry<Integer,Integer> entry=it.next();
                System.out.println(entry.getKey()+" "+entry.getValue());
            }
            
            //4.for循环(Iterator+Map.Entry<key,value>)
            for(Iterator<Map.Entry<Integer,Integer>> it=map.entrySet().iterator();it.hasNext();){
                Map.Entry<Integer,Integer> entry=it.next();
                System.out.println(entry.getKey()+" "+entry.getValue());
            }
            
            //5.forEach()+Map.Entry<Key,Value>
            for(Map.Entry<Integer,Integer> entry : map.entrySet()){
               System.out.println(entry.getKey()+" "+entry.getValue());
            }
        }*/
        /*=================================================*/
        //每次循环向map中出入元素时,检查该key是否存在map中
        Scanner sc=new Scanner(System.in);
        Map<Integer,Integer> map=new TreeMap<>();
        while(sc.hasNext()){
            int n=sc.nextInt();
            for(int i=0;i<n;i++){
                int key=sc.nextInt();
                int value=sc.nextInt();
                if(map.get(key)!=null){
                    map.put(key,map.get(key)+value);
                }else{
                    map.put(key,value);
                }
            }
            //for(Map.Entry<Integer,Integer> entry:map.entrySet()){////entry包含key value值
                //System.out.println(entry.getKey()+" "+entry.getValue());
            //}
            //for(Integer i:map.keySet()){
                //System.out.println(i+" "+map.get(i));
            //}
            Set<Integer> set=map.keySet();
            Iterator<Integer> it=set.iterator();
            while(it.hasNext()){
                Integer key=it.next();
                System.out.println(key+" "+map.get(key));
            }
        }
    }
}
全部评论

相关推荐

点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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