Map接口(双例集合):

  Map提供了映射关系,存放的元素是以key-value键值对存放的。可以根据key快速的查询value。key不可以重复,value可以重复。

常用实现类:HashMap,Hashtable,LinkedHashMap,TreeMap

常用方法
判断功能
boolean isEmpty():判断map是否为空
boolean containsKey(Object key):判断是否包含某个key
boolean containsValue(Object value):判断是否包含某个value
 
获取功能
int size():返回键值对的个数
V get(Object key):返回指定键所映射的值;如果此映射不包含该键的映射关系,则返回 null
Set<K> keySet():返回此映射中包含的键的 Set 视图
Collection<V> values():返回此映射中包含的值的 Collection 视图
Set<Map.Entry<K, V>> entrySet():返回此映射中包含的映射关系的 Set 视图
 
添加功能
V put(K key, V value):将指定的值与此映射中的指定键关联(可选操作)。如果此映射以前包含一个该键的映射关系,则用指定值替换旧值,并且返回旧的值。否则返回null
void putAll(Map<? extends K, ? extends V> m):把一组键值对放入到Map中。
 
删除功能
V remove(Object key):删除指定的key对应的键值对,返回被删除的键指定的值
void clear():从此映射中移除所有映射关系
 
遍历方式
方式1:根据键找值
获取所有键的集合
遍历键的集合,获取到每一个键
根据键找值
如:
Set<String> keySet = stus.keySet();
for(String key : keySet){
System.out.println(key +": "+stus.get(key));
}
方式2:根据键值对对象找键和值
获取所有键值对对象的集合
遍历键值对对象的集合,获取到每一个键值对对象
根据键值对对象找键和值
Set<Entry<String, String>> entrySet = stus.entrySet();
for(Entry<String, String> entry : entrySet){
System.out.println(entry.getKey()+" : "+entry.getValue());
}
 
HashMap:
特点:
  1. 不保证映射的顺序
  2. 可以使用null作为键或者值
  3. 线程不安全
  4. 底层使用Hash表来存储数据,默认大小16,负载因子0.75,当hash表的容量超过负载因子的时候开始扩容,扩容为原始容量的2
  5. 扩容时机,元素个数超过threshold的时候。
  6. 最多可以存放的元素个数为1<<30
  7. 执行new HashMap()的时候,并没有初始化table;而是在put的时候,才初始化。
  8. 不允许重复的key

LinkedHashMap:

特点:

  1. 可以排序,注意这里所说的顺序并不是添加的顺序。而是从大到小或者从小到大的顺序。
  2. 保证元素的唯一性

Hashtable:

特点:

1、线程安全,效率低
2、不能将null作为键或者值
3、初始容量为11,负载因子为0.75。超过负载因子*容量开始扩容,扩容为旧的容量*2+1
 
 

最新文章

  1. abrt-hook-ccpp: Saved core dump of pid 12224导致dn挂掉问题
  2. 2014年7月份第3周51Aspx源码发布详情
  3. Linux环境下发布项目(Tomcat重新启动)
  4. Netty5 + WebSocket 练习
  5. 如何破解UltraEdit
  6. [liu yanling]软件测试用例的基本要素包括哪些?
  7. [0] MVC&amp;MVP&amp;MVVM差异点
  8. Java中equals和==之间的区别
  9. 读《你不知道的JavaScript(上卷)》后感-作用域闭包(二)
  10. 升级 phpStudy 中 MySQL 版本至 5.7.17
  11. 判断二叉树是否BST
  12. Java+面向对象初学感想
  13. 2019-oo-第二次总结
  14. Flask实现异步非阻塞请求功能
  15. phpwind v9存在命令执行漏洞(登陆后台)
  16. 【c++】函数默认参数
  17. ext.net tooltip
  18. ISAPI和CGI限制中没有ASP.NET v4.0 ; vS2013检测到在集成的托管管道模式下不适用的 ASP.NET 设置。
  19. Openlayers地图量算功能
  20. 【set】【multiset】Codeforces Round #484 (Div. 2) D. Shark

热门文章

  1. docker 运行ubuntu镜像 apt-get update 问题
  2. C语言版数据结构算法
  3. Day6-T3
  4. Python面试常问的10个问题
  5. SpringBoot-集成通用mapper
  6. Python中语法糖及带参语法糖
  7. Python中pandas透视表pivot_table功能详解(非常简单易懂)
  8. java集合简单特性
  9. 基于云开发开发 Web 应用(三):云开发相关数据调用
  10. C# winform中ListView用法