遍历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

时间: 2024-10-25 17:36:32

遍历map和删除map中的一个entry的相关文章

C#如何删除数组中的一个元素

C#如何删除数组中的一个元素,剩余的元素组成新数组,数组名不变double[] arr = new double[n];需要删除的是第m+1个数据arr[m]求新数组arr.(新数组arr包含n-1个元素)m,n数值已知 double[] arr = new double[50]; List<double> list = arr.ToList(); list.RemoveAt(5+1); double[] newarr = list.ToArray(); 转:http://www.zybang

删除JSON中的一个属性

一个JSON如下 var myObj = {'test' : {'key1' : 'value', 'key2': 'value'}} 使用 delete 来删除一个属性 delete myObj.test.key1;

javascript遍历数组,针对数组中每一个元素执行fn函数,并将数组索引和元素作为参数传递

遍历主要有两种方法,i++方法和in关键词法 var list = [1, 2, 3, 4, 5, 6,7,8]; //var l = list.length; for(var i in list) { console.log(list[i]); } //[Finished in 0.3s] var list = [1, 2, 3, 4, 5, 6,7,8]; //var l = list.length; for(var i = 0; i < list.length; i++) { consol

Java 实例 - 删除字符串中的一个字符

package string; public class deleteString { /** * 删除字符串 * @param args */ public static void main(String[] args) { String str = "helloo,this is my third blog"; String str1 = removeCharAt(str, 5); System.out.println(str1); } public static String r

删除数组中某一个指定的数

javascript原生写法: Array.prototype.indexOf = function(val){ for(var i=0;i<this.length;i++){ if(this[i] == val){ return i } } return -1; } Array.prototype.remove = function(val){ var index = this.indexOf(val); if(index >-1){ rerurn this.splice(index,1);

450. Delete Node in a BST 删除bst中的一个节点

[抄题]: Given a root node reference of a BST and a key, delete the node with the given key in the BST. Return the root node reference (possibly updated) of the BST. Basically, the deletion can be divided into two stages: Search for a node to remove. If

删除字符串中的一个字符

public static void main(String args[]) { String str = "this is Java"; System.out.println(removeCharAt(str, 3)); } public static String removeCharAt(String s, int pos) { return s.substring(0, pos) + s.substring(pos + 1); } 原文地址:https://www.cnblog

【c++】map 迭代器删除示例

C++ STL中的map是非常常见的.通常我们用如下方式来遍历,并且删除map中的一些entry: map<int, int> mp; mp.insert(make_pair(1,1)); mp.insert(make_pair(2,3)); // insert some elements for (map<int, int>::iterator iter = mp.begin(); iter != mp.end(); iter++) { if (iter->first ==

典型问题分析3—LinkList中遍历操作与删除操作混合使用

LinkList中遍历操作与删除操作混合使用 删除成功后,list.current()返回什么值? #include <iostream> #include "LinkList.h" using namespace std; using namespace DTLib; int main() { LinkList<int> list; for(int i=0; i<5; i++) { list.insert(i); } for(list.move(0);