A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

map集合

Map集合特点:

1. 是双列集合, 一个元素包含两个值 (键key, 值value) 键值对

2. key和value的类型可以相同, 也可以不同

3. key不允许重复, value可以重复

4. key和value是一一对应的, 一个键只能对应一个值

Map常用子类:
V put(K key, V value): 添加/修改 键值对.
V remove(Object key): 根据键删除键值对, 返回被删除元素的值
V get(Object key): 根据键获取值.
boolean containsKey(Object key): 判断是否包含指定的键
Set keySet(): 获取Map集合中所有的键, 存储到Set集合中
Set> entrySet(): 获取到Map集合中所有的Entry对象的集合(Set集合)


Map遍历方式一: keySet()方法实现通过键找值

Set keySet(): 获取Map集合中所有的键, 存储到Set集合中
keySet()遍历步骤:
1. Map对象调用 keySet() 方法, 获取包含所有key的Set集合
2. 遍历Set集合, 获取每个key
3. 通过Map对象调用 get(Object key) 方法根据key获取到value

Map遍历方式2: 通过entrySet()获取Entry对象形式遍历

Set> entrySet(): 获取到Map集合中所有的键值对对象的集合(Set集合)
entrySet()方法遍历Map步骤:
1. Map对象调用 entrySet() 获取包含所有Entry对象的Set集合
2. 遍历Set集合, 获取每个Entry对象
3. 调用Entry对象的 getKey() 和 getValue() 方法获取键和值
Hashtable和HashMap

相同点:1. 底层都是哈希表

不同点:

1. Hashtable不允许存储 null 值和 null 键; HashMap允许存储 null 值和 null 键

2. Hashtable线程安全效率低; HashMap线程不安全效率高

Hashtable目前很少使用

但其子类 Properties 集合, 可以与IO流结合使用, 应用较多

接口的of()方法

使用集合添加大量元素时, 反复add(...)比较麻烦. JDK 9 为集合提供了一些静态方法, 可以方便的对集合进行初 始化



注意事项:

1. of() 方法只适用于List接口, Set接口, Map接口, 不适用于接口的实现类

2. of() 方法的返回值是一个不可变的集合, 集合不能再使用 add(), put() 方法添加元素, 会抛出异常

3. Set接口和Map接口在调用 of() 方法的时候, 不能有重复的元素, 否则会抛出异常











0 个回复

您需要登录后才可以回帖 登录 | 加入黑马