美文网首页
Map.Entry java

Map.Entry java

作者: 可可西里的星星 | 来源:发表于2019-05-26 22:24 被阅读0次

    Map.Entry的定义
    Map的entrySet()方法返回一个实现Map.Entry接口的对象集合。集合中每个对象都是底层Map中一个特定的键/值对。通过这个集合的迭代器,获得每一个条目(唯一获取方式)的键或值并对值进行更改。Map.Entry中的常用方法如下所示:

       (1) Object getKey(): 返回条目的关键字
    

    (2) Object getValue(): 返回条目的值
      (3) Object setValue(Object value): 将相关映像中的值改为value,并且返回旧值

    Map.Entry的作用
    Map.Entry是为了更方便的输出map键值对。一般情况下,要输出Map中的key 和 value 是先得到key的集合keySet(),然后再迭代(循环)由每个key得到每个value。values()方法是获取集合中的所有值,不包含键,没有对应关系。而Entry可以一次性获得这两个值。

    常用的遍历Map的方法
    Map<String, String> map = new HashMap<String, String>();
    map.put("1", "value1");
    map.put("2", "value2");
    map.put("3", "value3");

    //第一种:普遍使用,由于二次取值,效率会比第二种和第三种慢一倍
    System.out.println("通过Map.keySet遍历key和value:");
    for (String key : map.keySet()) {
    System.out.println("key= "+ key + " and value= " + map.get(key));
    }

    //第二种
    System.out.println("通过Map.entrySet使用iterator遍历key和value:");
    Iterator<Map.Entry<String, String>> it = map.entrySet().iterator();
    while (it.hasNext()) {
    Map.Entry<String, String> entry = it.next();
    System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());
    }

    //第三种:无法在for循环时实现remove等操作
    System.out.println("通过Map.entrySet遍历key和value");
    for (Map.Entry<String, String> entry : map.entrySet()) {
    System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());
    }

    //第四种:只能获取values,不能获取key
    System.out.println("通过Map.values()遍历所有的value,但不能遍历key");
    for (String v : map.values()) {
    System.out.println("value= " + v);
    }

    Map.entrySet迭代器会生成EntryIterator,其返回的实例是一个包含key/value键值对的对象。而keySet中迭代器返回的只是key对象,还需要到map中二次取值。故entrySet要比keySet快一倍左右。
    

    相关文章

      网友评论

          本文标题:Map.Entry java

          本文链接:https://www.haomeiwen.com/subject/mokqtctx.html