JAVA笔记十五
十五、Map
映射(map)是存储键和值间关联(键值对)的对象
给定一个键,可以找到其值
键和值都是对象
键必须唯一,但是值可以重复
1.支持映射的接口
接 口 | 描 述 |
Map | 将唯一键映射到值 |
NavigableMap | 扩展SortedMap接口,以处理基于最接近匹配搜索原则的键/值对检索 |
SortedMap | 扩展Map接口,从而以升序保存键 |
Map.Entry | 描述映射中的元素(键/值对) |
映射的两个基本操作:
(1)get()
指定键和值,放入到映射中
(2)put()
传递键,可以返回值
2.映射类
(1)HashMap
实现了Map接口,使用哈希表存储映射
构造方法:
HashMap()
空参构造
HashMap(int capacity)
指定容量,默认16
HashMap(int capacity,int fillRatio)
充填比率,0.0-1.0之间,默认0.75
(2)LinkHashMap
扩展了HashMap类,在内部使用一个链表维护条目添加到映射中的顺序,可以按照插入顺序迭代整个映射
构造方法:
LinkHashMap()
空参构造
LinkHashMap(int capacity)
指定容量,默认16
LinkHashMap(int capacity,int fillRatio)
充填比率,0.0-1.0之间,默认0.75
(3)TreeMap
扩展了AbstractMap类,并实现了NavigableMap接口,使用树接口存储条目,提供了有序存储键/值对的高效手段,并支持快速检索
构造方法:
TreeMap()
TreeMap(Comparator<? super K> comp)
TreeMap(Map<? extends K,? extends V> m)
TreeMap(SortedMap<K,? extends V> sm)
(4)Hashtable
实现了Map接口,与HashMap类似
区别:
1.Hashtable是同步的、线程安全的,而HashMap不是同步的,没有实现线程安全
2.HashMap允许将null作为一个条目的key或者value,而Hashtable不允许。当然只能有一个条目的键为null
3.HashMap把Hashtable的contains方法去掉了,改成containsvalue方法和containsKey方法(contains方法容易让人引起误解)
3.Map的遍历
映射不是集合,没有实现Collection接口,不能直接遍历
(1)entry接口
entry是Map的内部接口,定义了以下方法:
getKey():返回该映射条目的键
getValue():返回该映射条目的值
setValue():设置该映射条目的值
(2)获得映射的集合视图
使用entrySet()方法:返回包含映射中所有元素的Set对象
使用keySet()方法:返回包含映射中所有键的Set对象
使用values()方法:返回包含映射中所有值的Collection对象
原文地址:https://blog.csdn.net/m0_75227909/article/details/140671708
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!