Map集合

作者: 还是那个没头脑 | 来源:发表于2020-08-05 11:02 被阅读0次

Map集合概述和特点

Map集合概述

interface Map<K,V> K:键的类型;V:值的类型

Map集合特点

  • Map集合是一个双列集合,键值对映射关系
  • 一个键对应一个值
  • 键不能重复,值可以重复
  • 元素存取无序

Map接口下的集合与Collection接口下的集合对比

Map常用子类

HashMap

Java.util.LinkedHashMap<k,v>集合 extends HashMap<k,v>接口

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

LinkedHashMap

java.util.LinkedHashMap<k,v>集合 extends HashMap<k,v>集合

LinkedHashMap的特点:
1.LinkedHashMap集合底层是哈希表+链表(保证迭代的顺序)
2.LinkedHashMap集合是一个有序的集合,存储元素和取出元素的顺序是一致的

Map接口中的常用方法

V put(K key,V value) 添加元素
V remove(Object key) 根据键删除键值对元素
void clear() 移除所有的键值对元素
boolean containsKey(Object key) 判断集合是否包含指定的键
boolean containsValue(Object value) 判断集合是否包含指定的值
boolean isEmpty() 判断集合是否为空
int size() 集合的长度,也就是集合中键值对的个数

Map集合遍历键找值方式

Map集合的第一种遍历方式:通过键找值的方式

Map集合中的方法:
Set<K> keySet() 返回此映射中包含的键的 Set 视图。

实现步骤:
1.使用Map集合中的方法keySet(),把Map集合所有的key取出来,存储到一个Set集合中
2.遍历set集合,获取Map集合中的每一个key
3.通过Map集合中的方法get(key),通过key找到value

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

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

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

LinkedHashMap集合

java.util.LinkedHashMap<K,V> entends HashMap<K,V>

Map 接口的哈希表和链接 列表实现,具有可预知的迭代顺序。

底层原理:
哈希表+链表(记录元素的顺序)

Hashtable集合

Java.util.Hashtable<K,V>集合 implements Map<K,V>接口

Hashtable:底层也是一个哈希表,似乎一个线程安全的集合,是单线程集合,速度慢
HashMap: 底层是一个哈希表,是一个线程不安全的集合,是多线程的集合,速度快

HashMap集合(之前学的所有集合):可以存储null值,null键
Hashtable集合,不能存储null值,null键

Hashtable和Vector集合一样,在JDK1.2版本之后被更先进的集合(HashMap,ArrayList)取代了
Hashtable的子类Properties依然活跃在历史舞台
Properties集合是一个唯一和IO流相结合的集合

JDK9对集合添加的优化_of方法

JDK9的新特性:
List接口,Set接口,Map接口:里面增加了一个静态的方法of,可以给集合一次性添加多个元素
static <E> List<E> of (E... elements)

使用前提:
当集合中存储的元素的个数已经确定,,不在改变时使用

注意:
1.of方法只适用于List接口,Set接口,Map接口,不适用于接口的实现类
2.of方法的返回值是一个不能改变的集合,集合不能再使用add,put方法添加元素,会抛出异常
3.Set接口和Map接口在调用of方法的时候,不能有重复的元素,否则会抛出异常

相关文章

  • 2019-01-03

    Map集合 Map集合 1.1Map集合概念 Map集合是一种存放关系对象的对象的双列集合。 1.2Map集合的常...

  • 2019-01-13

    基于Map集合重点整理 Map集合 1.1Map集合概念 Map集合是一种存放关系对象的对象的双列集合。 1.2M...

  • Map集合Map<Integer,String> m

    01Map集合概述 A:Map集合概述:我们通过查看Map接口描述,发现Map接口下的集合与Collection接...

  • Map接口

    01Map集合概述 A:Map集合概述:我们通过查看Map接口描述,发现Map接口下的集合与Collection接...

  • 2020-06-30【Map】

    Map概述 Map集合的基本功能 Map集合的获取功能 Map集合的遍历 练习 Collections类 斗地主

  • day04 【Map】

    day04 【Map】 主要内容 Map集合 教学目标 能够说出Map集合特点 使用Map集合添加方法保存数据 使...

  • Java - Part 6

    一、Map集合Map集合和Collection集合不一样,Map集合是双列集合,以键值对的形式存在,键不能重复,值...

  • 集合详解

    Iterator:迭代器,它是Java集合的顶层接口(不包括 map 系列的集合,Map接口 是 map 系列集合...

  • 第六篇学习笔记

    第六篇学习总结 一、Map集合 Map集合和Collection集合不一样,Map集合是双列集合,以键值对的形式存...

  • Map----entrySet

    Map集合不需要迭代器; 他是先将Map集合转化为Set集合; 然后Set集合调用迭代器进行遍历。 Map.Ent...

网友评论

      本文标题:Map集合

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