JavaSE基础-集合之Map

java.util.Map<K,V>

  1. 双列
    集合
  2. K不能重复
  3. K,V一一对应,且两者数据类型可相同,可不同

二、Map接口常用实现类

常用实现类有

HashMap<K,V>

LinkedHashMap<K,V>

HashTable<K,V>

1.HashMap<K,V>

1).特点

a. 基于 哈希表
Map接口
实现

b. 无序

c. 不同步多线程

d. 键、值 可为null

2). 子类LinkedHashMap

a. 哈希表+链表
实现

b.有序

c.继承了 HashMap
,类似 HashSet
LinkedHashSet
的关系

3).存储自定义对象时,由于Key不能重复,需要重写其hashCode()和equals()方法

重写原因是如果不重写,会出现程序无法识别两者是同一个对象的问题,同时重写原因是为了防止出现哈希值冲突而内容不同或者内容相同哈希值不同的情况

2.HashTable<K,V>

1).特点

a. 基于 哈希表
Map接口
实现

b. 无序

c. 同步, 线程
,线程安全,速度

d. 键、值 不可为null

e. 因和 Vector
一样 单线程
速度慢
被取代

f. 其子类 Properties
因是唯一和 IO
相结合的集合而存在

三、Map接口常用方法

1. put(K key,V value)
,返回 value

如果key已经存在,会用新的 value
替换原来的 value

2. get(Object key)
,返回 value

3. ContainsKey(Object key)
,返回 boolean

4. ContainsValue(Object value)
,返回 boolean

5. keySet()
,返回 映射中包含键的Set视图

Key
全取出放入 Set

,之后如果遍历 Set
通过 get(key)
方法可以完成遍历 Map
集合( 键找值
的方式)

6. entrySet()
,返回 映射中包含映射关系的Set视图

1). Entry类

a.嵌套类

Map.Entry<K,V>
: Map接口
中的内部接口
作用是:

当Map集合一创建,就会在Map集合中创建一个Entry对象,用来记录

两者映射关系

b.映射项(键值对)

c.含有getKey()和getValue()方法

2). entrySet()方法

map
对象中的多个 Entry
对象取出,放入 Set
集合中,之后通过 Entry
对象的 getKey()
getValue()
遍历集合

Set<Map.Entry<String,Integer>> set = map.entrySet();
复制代码

六、JDK9新特性

List
接口、 Set
接口、 Map
接口增加了一个新的静态方法 of
,可以 一次性
给集合添加多个元素,但 不适于其实现类
,如 ArrayList
等,同时,集合后期 不可修改
(增加元素等),添加的元素需复合集合的特点( Set
Map
中不可添加重复元素)

原文 

https://juejin.im/post/5efef2095188252e703ab572

本站部分文章源于互联网,本着传播知识、有益学习和研究的目的进行的转载,为网友免费提供。如有著作权人或出版方提出异议,本站将立即删除。如果您对文章转载有任何疑问请告之我们,以便我们及时纠正。

PS:推荐一个微信公众号: askHarries 或者qq群:474807195,里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多

转载请注明原文出处:Harries Blog™ » JavaSE基础-集合之Map

赞 (0)
分享到:更多 ()

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址