Map集合
2019-09-30 07:19:15来源:博客园 阅读 ()
Map集合
1、Map集合的特点:
(1)每次存储一对元素,即键值对(key,vlaue);
(2)key和value的数据类型可以相同,也可以不同;
(3)key不能重复,如果key相同,后面存储的value会把前面的value覆盖;
2、Map接口的实现类:
(1)HashMap:无序集合,存储元素和取出元素的顺序可能不一致;允许存储null值、null键;
底层数据结构:哈希表
(2)LinkedHashMap:有序集合,存储元素和取出元素的顺序一直;
底层数据结构:哈希表+链表
3、哈希表数据结构(链表,数组结合体)
(1)特点:存储、取出快;线程不安全,运行快;无序,没有索引;不存储重复元素。
(2)实现原理:(竖向代表数组,java中,数组的初始长度默认为16,加载因子默认为0.75,即存储数据时,数组的长度达到16*0.75=12时,数组扩大为原来的两倍(数组在哈希);横向代表链表)
(3)存储过程:添加一个键值对时,首先计算key的hash值,相同hash值的元素放在一个数组元素(例:a[0])中,形成链表,即一个数组元素中存放的是具有相同hash值的链表。
当链表的长度太长时,链表就转为红黑树,这样大大提高了查找的效率。
4、HashMap的方法:
(1)创建对象:Map<key的类型,value的类型> map=new HashMap<key的类型,value的类型>();
例:Map<String,Integer> map=new HashMap<String,Integer>();
(2)存储元素:V map.put(K,V); 一般情况下返回null,存储重复键时,返回覆盖之前的值;
(3)取出元素:V map.get(K); 通过键,获取值,如果集合中没有这个键,返回null;
(4)移除元素: V map.remove(K); 移除集合中的键值对,返回被移除之前的值;
(5)map集合遍历:
方法一:利用键获取值
调用map集合的方法keySet,将所有的键存储到Set集合中,利用迭代器或增强for,遍历Set集合,获取Set集合中的所有元素(即map中的键),调用get方法,通过键获取值
例:Set<Key类型> set=map.keySet();
Iterator<Key类型> it=set.iterator();
while(it.hasNext()){
Key类型 key=it.next();
Value类型 value=map.get(key);
}
方法二:利用键值对映射关系
调用map集合的方法entrySet,将集合中的映射关系对象存储到set集合中,利用迭代器或增强for,遍历Set集合,获取Set集合中的所有元素(映射关系对象Map.Entry<K类型,V类型>),
通过映射关系对象的方法getKey(),getValue()获取相应的Key和Value
例:Set<Map.Entry<K类型,V类型>> set=map.entrySet();
for(Map.Entry<K类型,V类型> entry:set){
K类型 key=entry.getKey();
V类型 value=entry.getValue();
}
5、Hashtable:Map的接口实现类,方法与HashMap一样,
不同点:Hashtable:线程安全,运行速度慢;
HashMap:线程不安全,运行速度快。
原文链接:https://www.cnblogs.com/xiaozhu1017/p/11598781.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:Eclipse 的快捷键
下一篇:JAVA知识点总结篇(一)
- 与JAVA集合相遇 2020-06-11
- Java笔记:集合 2020-06-10
- 2020最新IDEA插件大集合,一款能帮助你写代码的工具是多么重 2020-06-09
- 深入解析ThreadLocal和ThreadLocalMap 2020-06-08
- 头条面试居然跟我扯了半小时的Semaphore 2020-06-08
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash