映射:
Java
提供了专门的集合类用来存放这种对象关系的对象,即
java.util.Map
接
口。
Collection
中的集合称为单列集合,
Map
中的集合称为双列集合。
Map
中的集合不能包含重复的键,值可以重复;每个键只能对应一个值。
Map集合的常用子类
HashMap
:存储数据采用的哈希表结构,元素的存取顺序不能保证一致。由于要保证键的唯一、不重复,需
要重写键的
hashCode()
方法、
equals()
方法。
LinkedHashMap
:
HashMap
下有个子类
LinkedHashMap
,存储数据采用的哈希表结构
+
链表结构。通过链
表结构可以保证元素的存取顺序一致;通过哈希表结构可以保证的键的唯一、不重复,需要重写键的
hashCode()
方法、
equals()
方法。
Map
接口中的常用方法
public V put(K key, V value)
:
把指定的键与指定的值添加到
Map
集合中。
public V remove(Object key)
:
把指定的键 所对应的键值对元素 在
Map
集合中删除,返回被删除元素的
值。
public V get(Object key)
根据指定的键,在
Map
集合中获取对应的值。
public Set<K> keySet()
:
获取
Map
集合中所有的键,存储到
Set
集合中。
public Set<Map.Entry<K,V>> entrySet()
:
获取到
Map
集合中所有的键值对对象的集合
(Set
集合
)
。
使用
put
方法时,若指定的键
(key)
在集合中没有,则没有这个键对应的值,返回
null
,并把指定的键值添加到
集合中;
若指定的键
(key)
在集合中存在,则返回值为集合中键对应的值(该值为替换前的值),并把指定键所对应的
值,替换成指定的新值。
Map
集合遍历键找值方式
keyset()
键值对方式:即通过集合中每个键值对
(Entry)
对象,获取键值对
(Entry)
对象中的键与值
Map
集合不能直接使用迭代器或者
foreach
进行遍历。但是转成
Set
之后就可以使用了。
HashMap
存储自定义类型键值
当给
HashMap
中存放自定义对象时,保证对象唯一,必须复写对象的 hashCode和
equals
方法
LinkedHashMap
它是链表和哈希表组合的一个数据存储结构。