Map -- HashMap

作者: 71150ce14a00 | 来源:发表于2017-07-01 21:54 被阅读10次

    Collection:单列集合,一次存一个对象
    Map双列集合,一次存两个对象,而且这两个对象要存在某种关系,一 一对应关系

    1. map集合的key唯一,值可以重复
    2. 键和值整体叫键值对,并且键值对唯一

    单列集合和双列集合区别:

    1. 单列集合一次存储一个值,双列集合一次存储两个具备有映射关系的值
    2. 单列集合底层数据结构针对每个元素
      3,双列集合其实底层就是两个单列集合,底层所说的数据结构是针对键,和值的没有关系
      4,键位置使用单列集合中的set存储, 值使用list

    如果添加数据的时候,集合中不存在键,那么就会直接添加,并返回null, 如果存在,那么就会根据键修改值,并返回旧的value

    总结put(key,value) 可以添加也可以修改

    put(key,value) 增删,修改
    clear() 清空
    remove(key) 删除,返回对应的值,如果没有返回null
    get(key)根据key获取值,如果没有返回null
    cotainskey(key) 判断是否包含key, 返回boolean
    containsValue(value)判断是否包含某个value,返回boolean
    isEmpty() 判断是否为空,返回boolean
    keySet() ,返回集合的多有key, 保存在Set<E>
    values() , 返回集合中所有value,保存在Collection中
    size() 获取集合长度

    map迭代两种方法

    1. keySet() 和 get(key)搭配使用
      Set<String> keys = list.keySet();
      for(Iterator<String> it = keys.iterator();it.hasNext();){
      String key = it.next();
      String value = list.get(key);
      }
    2. entrySet(),返回整体(key,value)的值,存放在set中,整体属于Map,Entry类型,在迭代器每次取出来的是键值对整体,属于Map.Entry类型
      Set<Map.Entry<String,String>> entrys = list.entrySet();
      for(Iterator<Map.Entry<String,String>> it = entrys.iterator();it.hasNext();){
      Map.Entry<String,String> entry = it.next();
      String key = entry.getKey();
      String value = entry.getValue();
      }

    HashMap:
    map集合中保存的一组对象
    HashMap可以自定义一个对象作为集合的key(要重写hashCode和equals方法)

    LinkedHashMap
    链表,哈希表,存储有序

    HashMap和hashtable区别:
    hashtable不许存储null
    HashMap线程不安全,效率高,hashtable线程安全,效率低

    相关文章

      网友评论

        本文标题:Map -- HashMap

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