zoukankan      html  css  js  c++  java
  • 遍历map和删除map中的一个entry

    一.最常见的,需要key和value都需要时

    public static void main(String[] args) {
            Map<Integer,Integer> map = new HashMap<Integer,Integer>();
             map.put(33, 333);
             map.put(22, 222);
             map.put(11, 111);
            for(Map.Entry<Integer, Integer> entry:map.entrySet()){
                System.out.println("key:"+entry.getKey()+" value:"+entry.getValue());
                
            }
            
            
        }

    当map为空时,就会报空指针,所以在map!=null的条件下遍历

    二.只需要map中的所有key或者只要map中的所有value

    public static void main(String[] args) {
            Map<Integer,Integer> map = new HashMap<Integer,Integer>();
             map.put(33, 333);
             map.put(22, 222);
             map.put(11, 111);
             List<Integer> list = new ArrayList<>();
            for(Integer key : map.keySet()){
                System.out.println("key:"+ key);
                list.add(key);
            }
            System.out.println(list);
            
            
        }

    public static void main(String[] args) {
            Map<Integer,Integer> map = new HashMap<Integer,Integer>();
             map.put(33, 333);
             map.put(22, 222);
             map.put(11, 111);
             
             List<Integer> list = new ArrayList<>();
             for(Integer value : map.values()){
                 System.out.println("value:"+value);
                 list.add(value);
             }
            System.out.println(list);
            
        }

    三.使用Iterator遍历,加强功能:在遍历过程中删除个别entry

    public static void main(String[] args) {
            Map<Integer,Integer> map = new HashMap<Integer,Integer>();
             map.put(33, 333);
             map.put(22, 222);
             map.put(11, 111);
             Iterator<Map.Entry<Integer,Integer>> entries = map.entrySet().iterator();
            while(entries.hasNext()){
                Map.Entry<Integer, Integer> entry = entries.next();
                System.out.println("key:"+ entry.getKey()+" value:"+entry.getValue());
            }
        }

    删除个别entry

    public static void main(String[] args) {
            Map<Integer,Integer> map = new HashMap<Integer,Integer>();
             map.put(33, 333);
             map.put(22, 222);
             map.put(11, 111);
             Iterator<Map.Entry<Integer,Integer>> entries = map.entrySet().iterator();
            while(entries.hasNext()){
                Map.Entry<Integer, Integer> entry = entries.next();
                if(entry.getKey().equals(22)){
                    entries.remove();
                }
                //在entries的remove之前entries.next()已经把下一个给了entry
                //就是删除22前,已经把22给了entry
                //再打印entry时,22已经在entry了
                //但是现在entries里已经没有22了
                System.out.println("key:"+ entry.getKey()+" value:"+entry.getValue());
            }
            System.out.println("这时打印***********");
            //再打印entries,就已经没有22了
            Iterator<Map.Entry<Integer,Integer>> entries2 = map.entrySet().iterator();
            while(entries2.hasNext()){
                Map.Entry<Integer, Integer> entry = entries2.next();
                System.out.println("key:"+ entry.getKey()+" value:"+entry.getValue());
            }
            
        }

    在用Iterator.remove()方法时,要在循环之外再打印map

  • 相关阅读:
    Java I/O基础
    Python基础篇(九)
    Python基础篇(八)
    thinkphp5中Indirect modification of overloaded element of XXX has no effect的解决办法
    关于json_encode转义斜杠的问题
    [thinkexceptionErrorException] glob() has been disabled for security reasons
    CentOS7 安装svn
    -bash: /usr/bin/yum: /usr/bin/python: bad interpreter: No such file or directory
    php在线编辑本地文件方法共享
    python一些不错的东西
  • 原文地址:https://www.cnblogs.com/lonely-buffoon/p/5575420.html
Copyright © 2011-2022 走看看