Java集合框架--Map接口概述 & Map接口使用 & entrySet和keySet()遍历map谁的效率更高?

Posted Z && Y

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java集合框架--Map接口概述 & Map接口使用 & entrySet和keySet()遍历map谁的效率更高?相关的知识,希望对你有一定的参考价值。

1. Map接口概述

特点:

存储一对数据(Key-Value),无序、无下标,键不可重复。

常用方法:

  • V put(K key,V value)//将对象存入到集合中,关联键值。key重复则覆盖原值。
  • Object get(Object key)//根据键获取相应的值。
  • keySet//返回所有的key
  • Collection values()//返回包含所有值的Collection集合。
  • entrySet<Map.Entry<K,V>>//键值匹配的set集合

api文档

JDK api中文文档

api文档方法摘要:


2. Map接口使用

示例代码:

/**
 * Map接口的使用
 * 特点:1.存储键值对 2.键不能重复,值可以重复 3.无序
 */
public class Demo1 {
    public static void main(String[] args) {
        Map<String, String> map = new HashMap<String, String>();
        //1.添加元素
        map.put("China", "中国");
        map.put("American", "美国");
        map.put("Britain", "英国");
        map.put("Canada", "加拿大");
        map.put("Spain", "西班牙");
        map.put("Germany", "德国");
        System.out.println("map集合内容为:\\n" + map.toString());
        //2.删除元素
        map.remove("America");
        System.out.println("删除了American后map集合内容为:\\n" + map.toString() + "\\n");
        //3.遍历
        //3.1 使用keySet();
        System.out.println("----------------使用keySet()遍历---------------------");
        for (String key : map.keySet()) {
            System.out.println(key + " " + map.get(key));
        }
        //3.2 使用entrySet();效率较高
        System.out.println("----------------entrySet()遍历---------------------");
        for (Map.Entry<String, String> entry : map.entrySet()) {
            System.out.println(entry.getKey() + " " + entry.getValue());
        }

        System.out.println("\\nmap的key是否包含了China: " + map.containsKey("China"));
        System.out.println("map的value是否包含了China: " + map.containsValue("中国"));
    }
}

运行结果:


3. entrySet和keySet()遍历map谁的效率更高?

原理:

结论:

entrySet的效率高于keySet。

原因:

keySet遍历后只拿到了key,要继续拿到value,每拿一次value都需要重新遍历一个map。而entrySet可以直接一次拿完key和value,所以entrySet的效率高于keySet。



以上是关于Java集合框架--Map接口概述 & Map接口使用 & entrySet和keySet()遍历map谁的效率更高?的主要内容,如果未能解决你的问题,请参考以下文章

Java中的集合(List,Set,Map)(知识点详解)(看完这篇就够了)

Java集合框架04

Java集合框架--Set集合概述 & Set接口使用

Java集合框架 Map接口实现类--HashMap的介绍及使用 & HashMap存储过程

java集合框架详解

尚硅谷_Java零基础教程(集合Collection:list,set;map)-- 学习笔记