zoukankan      html  css  js  c++  java
  • Map接口的实现集合(双列数据结构)

    Map集合

    概述

    现实生活中,我们常会看到这样一种集合:ip地址和主机名,身份证号和个人,系统用户名与系统用户对象等,这种是一一对应的关系,我们把它称为映射.java当中提供了专门的集合类用来存放这种映射关系的对象.即java.util.Map接口.

    Map是双列数据结构,键值对 key value对应的数据结构

    key键的值唯一

    一个map的key键 可以储存null 但是只可以存储一次,value的值可以随意存储,因为key键唯一

    单列数据结构和双列数据结构

    • Colleciont接口中的集合,元素是孤立存在的(单身`),向集合中存储元素采用的是一个一个的进行存储

    • Map接口中的集合是成对存在的,存储方式为一对 一对的进行存储,每个元素都有键和值两部分组成,因为键的唯一特性,我们可以通过键找到值

    • Collection接口中的集合我们称之为单列集合,Map中的集合我们称为双列集合

    • 注意:Map中的集合不能包含重复的键,值可以重复,每个键对应唯一 一个值

    Map接口的常用实现类

    通过查看Api发现有很多的子类(实现类),我们主要介绍HashMap集合.LinkedHashMap集合.HashTable集合

    • HashMap; 存储数据采用的哈希表,元素的存取顺序可能不一致,由于要保证键的唯一性,不重复,需要重写键的HashCode方法和equals方法

    • LinkedHashMap:HashMap下面有个子类LinkedHashMap,存储数据的方式也是哈希表结构+链表结构,可以通过链表结构保证元素的存取顺序一致,通过哈希表结构可以保证键的唯一.不重复,需要重写键的hashCode方法和equals方法.

    备注:Map接口当中的,含有两个泛型变量,在使用时,要为两个泛型变量赋予数据类型,两个泛型变量的数据类型可以相同,也可以不同,

    Map接口当中的常用API方法<K,V>

    常用方法如下:

    • public V put(K key,V value):把制定的键与制定的值添加到Map集合当中

    • public V remove(Object key):把制定的键所对应的键值对元素从Map集合中删除,返回的是被删除的value值

    • public V get(Object key):根据指定的键值获得在Map集合中对应的值

    • public Set<K> keySet():获取Map集合当中的所有的Key值,存储到一个Set集合当中

    • public Set<Map.Entry<K,V>> entrySet():获取到Map集合当中的所有的键值对对象的集合(Set集合)

    不同于单列数据结构Collection接口拥有Set和List两个接口实现接口和一大堆的实现集合类

    Map的实现类中常用的实现集合类只有三个

    HashMap  可以存储null键,null  值  其他和Collecition的Map集合一样,是无序的(输入和输出的顺序不一样),可使用EntrySet把Map集合中的所有元素拿出来放入但数据结果的Set集合中,每一歌Entry都是一对,相当于类类型

    Hashtable   不可以存储Null键,null值 

    LinkedHashMap   和上面相比 可存储Null和NULL值并且多了一条链表存储顺序,所以他是有序的,可使用迭代 Entry 高级for循环

     

     

     

     

     

     

     

     

     

     

     

  • 相关阅读:
    结对编程(阶段二)
    结对编程 第一阶段
    Git实验
    webpack02
    webpack01
    实验五 单元测试
    实验四 代码审评
    UML建模工具的安装和使用
    实验二 结对编程(阶段二)
    博客园背景的修改
  • 原文地址:https://www.cnblogs.com/rosiness/p/14118050.html
Copyright © 2011-2022 走看看