JAVA-基础(Map)

JAVA-基础(Map)

1.什么是map?

与Collection不太一样,Collection是一个单列集合,map是一个双列集合。Map中的集合不能包含重复的键,值可以重复;每个键只能对应一个值。

2.方法?

public V put(K key, V value): 把指定的键与指定的值添加到Map集合中。

public V remove(Object key): 把指定的键 所对应的键值对元素 在Map集合中删除,返回被删除元素的值。

public V get(Object key) 根据指定的键,在Map集合中获取对应的值。

boolean containsKey(Object key) 判断集合中是否包含指定的键。

public Set<K> keySet(): 获取Map集合中所有的键,存储到Set集合中。

public Set<Map.Entry<K,V>> entrySet(): 获取到Map集合中所有的键值对对象的集合(Set集合)。

3.常用子类?

HashMap<K,V>:存储数据采用的哈希表结构,元素的存取顺序不能保证一致。由于要保证键的唯一、不重复,需要重写键的hashCode()方法、equals()方法。

LinkedHashMap<K,V>:HashMap下有个子类LinkedHashMap,存储数据采用的哈希表结构+链表结构。通过链表结构可以保证元素的存取顺序一致;通过哈希表结构可以保证的键的唯一、不重复,需要重写键的hashCode()方法、equals()方法。

4.Entry键值对对象?

key value它们在Map中是一一对应关系,这一对对象又称做Map中的一个Entry(项)。Entry将键值对的对应关系封装成了对象。即键值对对象,这样我们在遍历Map集合时,就可以从每一个键值对(Entry)对象中获取对应的键与对应的值。

public K getKey():获取Entry对象中的键。

public V getValue():获取Entry对象中的值。

在Map集合中也提供了获取所有Entry对象的方法:

public Set<Map.Entry<K,V>> entrySet(): 获取到Map集合中所有的键值对对象的集合(Set集合)。

5.HashMap存储自定义键值?

当给HashMap中存放自定义对象时,如果自定义对象作为key存在,这时要保证对象唯一,必须复写对象的hashCode和equals方法。

如果要保证map中存放的key和取出的顺序一致,可以使用java.util.LinkedHashMap集合来存放。

6.LinkedHashMap?

存储数据采用的哈希表结构+链表结构。所以可以顺序存取。

猜你喜欢

转载自www.cnblogs.com/fan123yh/p/11026482.html