java中常用的数据结构--Map
一、定义:
将键映射到值的对象。 地图不能包含重复的键; 每个键可以映射到最多一个值。
public interface Map<K,V>
请注意!!!, Map 没有继承 Collection 接口, Map 提供 key 到 value 的映射,你可以通过“键”查找“值”。一个 Map 中不能包含相同的 key ,每个 key 只能映射一个 value 。 Map 接口提供 3 种集合的视图, Map 的内容可以被当作一组 key 集合,一组 value 集合,或者一组 key-value 映射。
Map的API
void clear() 从该地图中删除所有的映射(可选操作)。 boolean containsKey(Object key) 如果此映射包含指定键的映射,则返回 true 。 boolean containsValue(Object value) 如果此地图将一个或多个键映射到指定的值,则返回 true 。 Set<map.entry<k,v>> entrySet() 返回此地图中包含的映射的Set视图。 V get(Object key) 返回到指定键所映射的值,或 null如果此映射包含该键的映射。 boolean isEmpty() 如果此地图不包含键值映射,则返回 true 。 Set<k> keySet() 返回此地图中包含的键的Set视图。 V put(K key, V value) 将指定的值与该映射中的指定键相关联(可选操作)。 void putAll(Map<!--? extends K,? extends V--> m) 将指定地图的所有映射复制到此映射(可选操作)。 V remove(Object key) 如果存在(从可选的操作),从该地图中删除一个键的映射。 default boolean remove(Object key, Object value) 仅当指定的密钥当前映射到指定的值时删除该条目。 default V replace(K key, V value) 只有当目标映射到某个值时,才能替换指定键的条目。 default boolean replace(K key, V oldValue, V newValue) 仅当当前映射到指定的值时,才能替换指定键的条目。 int size() 返回此地图中键值映射的数量。 Collection<v> values() 返回此地图中包含的值的Collection视图。 </v></k></map.entry<k,v>
Map中还包括一个内部类Entry,该类封装了一个key-value对。Entry包含如下三个方法:
K getKey()
返回与此条目相对应的键。
V getValue()
返回与此条目相对应的值。
V setValue(V value)
用指定的值替换与该条目相对应的值(可选操作)
二、实现Map接口的子类
1、TreeMap : http://www.cnblogs.com/skywang12345/admin/EditPosts.aspx?postid=3310928
2、HashMap : http://www.cnblogs.com/skywang12345/p/3310835.html
3、HashTable: http://www.cnblogs.com/skywang12345/p/3310887.html
4、Java7/8 中的 HashMap 和 ConcurrentHashMap 全解析:http://www.importnew.com/28263.html