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