零基础学Java—Map集合概述(四十三)

Posted 王同学要努力

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了零基础学Java—Map集合概述(四十三)相关的知识,希望对你有一定的参考价值。

一、Map集合概述

现实生活中,我们常会看到这样一种集合,IP地址与主机 名,身份证号与个人,系统用户名与系统对象等等,这种一一对应的关系,就叫做映射。java提供了专门的集合用来存放这种对象的关系,即java.util.Map接口。

我们通过查看Map接口描述,发现Map接口下的集合与Collection接口下的集合,他们存储数据的形式不同,如下图所示:

🧨🧨🧨🧨🧨🧨总结

  • Collection中的集合,元素是孤立存在的(理解为单身),向集合中存储元素采用一个个元素的存储方式。
  • Map中的集合,元素是成对存在的(理解为夫妻关系),每个元素由键与值两部分构成,通过键可以找到对应元素的值。
  • Collection中的集合称为单列集合,Map中的集合称为双列集合。
  • 需要注意的是,Map中的集合不能包含重复的键,值可以重复,每个键只能对应一个值。

二、Map常用子类

java.util.Map<k,v>集合 implements Map<k,v>接口

🧨🧨🧨🧨🧨HashMap集合的特点:

  • HashMap集合底层是哈希表,查询的速度特别的快
  • JDK1.8之前:数组+单向链表
  • JDK1.8之后:数组+单向链表/红黑树(链表的长度超过8):提高查询的速度
  • hashMap集合是一个无序的集合,存储元素和取出元素的顺序有可能不一致
  • java.util.linkedHashMap<k,v>集合 extends HashMap<k,v> 集合

🧨🧨🧨🧨🧨linkedHashMap的特点:

  • linkedHashMap集合的底层是哈希表+链表
  • linkedHashMap集合是一个有序的集合,存储元素的取出元素的顺序都是一致的

三、Map接口中常用的方法


四、Entry键值对对象

作用:当Map集合一创建,那么就会在Map集合中创建一个Entry对象,用来记录键与值(键值对对象。键与值的映射关系)


Map集合遍历的第二种方式:使用Entry对象遍历

Map集合中的方法:

  • Set<Map,Entry<K,V>> entrySet() 返回此映射中包含的映射关系的Set视图

实现步骤:

  • 使用Map集合中的方法 entrySet(),把Map集和中的多个Entry对象取出来,存储到Set集合中
  • 遍历Set集合,获取每一个Entry对象
  • 使用Entry对象中的方法getKey()getValue()获取键与值
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;

/**
 * @author :CaiCai
 * @date : 2022/4/14 14:56
 */

/*
Map集合遍历的第二种方式:使用Entry对象遍历

Map集合中的方法:
Set<Map,Entry<K,V>> entrySet()   返回此映射中包含的映射关系的Set视图

实现步骤:
使用Map集合中的方法 entrySet(),把Map集和中的多个Entry对象取出来,存储到Set集合中
遍历Set集合,获取每一个Entry对象
使用Entry对象中的方法getKey()和getValue()获取键与值


 */
public class demoMap 
    public static void main(String[] args) 
        //创建Map集合对象
        Map<String,Integer> map=new HashMap<>();
        map.put("赵丽颖",168);
        map.put("张三",179);
        map.put("李四",170);

        //使用Map集合中的方法 entrySet(),把Map集和中的多个Entry对象取出来,存储到Set集合中
        Set<Map.Entry<String,Integer>> set=map.entrySet();
        //使用迭代器遍历Set集合
        Iterator<Map.Entry<String,Integer>> it= set.iterator();
        while(it.hasNext())
            Map.Entry<String,Integer> entry=it.next();
            //使用entry对象中的方法getkey()和getValue()获取键值
            String key=entry.getKey();
            Integer value=entry.getValue();
            System.out.println(key+"-"+value);

        

    


以上是关于零基础学Java—Map集合概述(四十三)的主要内容,如果未能解决你的问题,请参考以下文章

零基础学Java—Collections集合工具类(四十二)

零基础学Java—哈希值(四十一)

salesforce 零基础学习(四十三)运算取余

零基础学Java—ArrayList集合概述和基本使用(十四)

零基础学Java—自定义异常(四十八)

零基础学Java—throw关键字(四十六)