zoukankan      html  css  js  c++  java
  • Java中Map的4种遍历方式

    第一种方式:这是平常用的最多也最可取的一种遍历方式。

    for (Map.Entry<String, Object> entry : map.entrySet()) {

    System.out.println("key=" + entry.getKey() + ",value=" + entry.getValue());

    第二种方式:如果只需要map中的键或者值,你可以通过keySet或values来实现遍历,而不是用entrySet,该方法比entrySet遍历在性能上稍好(快了10%),而且代码更加干净。

    // 遍历key

    for (String key : map.keySet()) {

    System.out.println("key=" + key);

    }

    // 遍历value

    for (Object value : map.values()) {

    System.out.println("value=" + value);

    }

    第三种方式:使用Iterator进行遍历Map。

    Iterator<Map.Entry<String, Object>> entries = map.entrySet().iterator();

    while (entries.hasNext()) {

    Entry<String, Object> entry = entries.next();

    System.out.println("key=" + entry.getKey() + ",value=" + entry.getValue());

    }

    注意:在遍历过程中remove操作,只能用iterator遍历方式,其他遍历会抛异常,(顺便补充,list通过Iterator方式可正确遍历完成remove操作,直接调用list的remove方法就会抛异常)。

    Iterator<Map.Entry<String, Object>> it = map.entrySet().iterator();

    while (it.hasNext()) {

    Map.Entry<String, Object> entry = it.next();

    String key = entry.getKey();

    if (key.equals("1")) {

    System.out.println("remove的key= " + key);

    it.remove();

    System.out.println("key=" + key + "已移除");

    }

    }

    for (String key : map.keySet()) {

    System.out.println("key=" + key + ",value=" + map.get(key));

    }

    list的遍历中remove。

    //会抛ConcurrentModificationException异常

    for(String str : list){

    list.remove(str);

    }

    //正确遍历移除方式

    Iterator<String> it = list.iterator();

    while(it.hasNext()){

    it.next();

    it.remove();

    }

    第四种遍历方式:通过键找值遍历,缺点,效率低,本身从键取值是耗时的操作。

    for (String key : map.keySet()) {

    Object value = map.get(key);

    System.out.println("key=" + key + ",value=" + value);

    }

  • 相关阅读:
    WPF-触发器
    WPF使用socket实现简单聊天软件
    git常用命令备忘
    (转载)WPF中的动画——(一)基本概念
    WPF中的依赖项属性
    C#中的索引器
    C#中的装箱拆箱
    编程语言的弱类型、强类型、动态类型、静态类型
    WPF中的数据驱动
    WPF中的命令简介
  • 原文地址:https://www.cnblogs.com/muhy/p/12340331.html
Copyright © 2011-2022 走看看