一、Map接口
1、Map<K,V>接口基本概念
Map接口定义了存储“键(key)— 值(value)映射对”的方法。
2、Map<K,V>主要方法摘要
void clear();
从此映射中移除所有映射关系(可选操作)。boolean containsKey(Object key);
如果此映射包含指定键的映射关系,则返回 true。boolean containsValue(Object value);
如果此映射将一个或多个键映射到指定值,则返回 true。Set<Map.Entry<K,V>> entrySet();
返回此映射中包含的映射关系的 Set 视图。boolean equals(Object o);
比较指定的对象与此映射是否相等。V get(Object key);
返回指定键所映射的值;如果此映射不包含该键的映射关系,则返回 null。int hashCode();
返回此映射的哈希码值。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);
如果存在一个键的映射关系,则将其从此映射中移除(可选操作)。int size();
返回此映射中的键-值映射关系数。Collection<V> values();
返回此映射中包含的值的 Collection 视图。
3、Map遍历Demo
public class MapDemo{
public static void main(String[] args) {
Map<Integer, String> map = new HashMap<Integer, String>();
map.put(1, "value1");
map.put(2, "value2");
map.put(3, "value3");
//第一种:普遍使用,二次取值
System.out.println("通过Map.keySet遍历key和value:");
for (Integer key : map.keySet()) {
System.out.println("key="+ key + " and value=" + map.get(key));
}
//第二种
System.out.println("\n通过Map.entrySet使用iterator遍历key和value:");
Iterator<Map.Entry<Integer, String>> it = map.entrySet().iterator();
while (it.hasNext()) {
Map.Entry<Integer, String> entry = it.next();
System.out.println("key=" + entry.getKey() + " and value=" + entry.getValue());
}
//第三种:推荐,尤其是容量大时
System.out.println("\n通过Map.entrySet遍历key和value:");
for (Map.Entry<Integer, String> entry : map.entrySet()) {
System.out.println("key=" + entry.getKey() + " and value=" + entry.getValue());
}
//第四种:通过Map.values()遍历所有的value,但不能遍历key
System.out.println("\n通过Map.values()遍历所有的value:");
for (String v : map.values()) {
System.out.println("value=" + v);
}
}
}
二、HashMap类
1、HashMap<K,V>基本概念
2、HashMap<K,V>主要方法摘要
void clear();
从此映射中移除所有映射关系。Object clone();
返回此 HashMap 实例的浅表副本:并不复制键和值本身。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);
从此映射中移除指定键的映射关系(如果存在)。int size();
返回此映射中的键-值映射关系数。Collection<V> values();
返回此映射所包含的值的 Collection 视图
三、TreeMap类
1、TreeMap<K,V>基本概念
2、TreeMap<K,V>方法摘要
Map.Entry<K,V> ceilingEntry(K key);
返回一个键-值映射关系,它与大于等于给定键的最小键关联;如果不存在这样的键,则返回 null。K ceilingKey(K key);
返回大于等于给定键的最小键;如果不存在这样的键,则返回 null。void clear();
从此映射中移除所有映射关系。Object clone();
返回此 TreeMap 实例的浅表副本。boolean containsKey(Object key);
如果此映射包含指定键的映射关系,则返回 true。boolean containsValue(Object value);
如果此映射为指定值映射一个或多个键,则返回 true。NavigableSet<K> descendingKeySet();
返回此映射中所包含键的逆序 NavigableSet 视图。NavigableMap<K,V> descendingMap();
返回此映射中所包含映射关系的逆序视图。Set<Map.Entry<K,V>> entrySet();
返回此映射中包含的映射关系的 Set 视图。Map.Entry<K,V> firstEntry();
返回一个与此映射中的最小键关联的键-值映射关系;如果映射为空,则返回 null。K firstKey();
返回此映射中当前第一个(最低)键。Map.Entry<K,V> floorEntry(K key);
返回一个键-值映射关系,它与小于等于给定键的最大键关联;如果不存在这样的键,则返回 null。K floorKey(K key);
返回小于等于给定键的最大键;如果不存在这样的键,则返回 null。V get(Object key);
返回指定键所映射的值,如果对于该键而言,此映射不包含任何映射关系,则返回 null。SortedMap<K,V> headMap(K toKey);
返回此映射的部分视图,其键值严格小于 toKey。NavigableMap<K,V> headMap(K toKey, boolean inclusive);
返回此映射的部分视图,其键小于(或等于,如果 inclusive 为 true)toKey。Map.Entry<K,V> higherEntry(K key);
返回一个键-值映射关系,它与严格大于给定键的最小键关联;如果不存在这样的键,则返回 null。K higherKey(K key);
返回严格大于给定键的最小键;如果不存在这样的键,则返回 null。Set<K> keySet();
返回此映射包含的键的 Set 视图。Map.Entry<K,V> lastEntry();
返回与此映射中的最大键关联的键-值映射关系;如果映射为空,则返回 null。K lastKey();
返回映射中当前最后一个(最高)键。Map.Entry<K,V> lowerEntry(K key);
返回一个键-值映射关系,它与严格小于给定键的最大键关联;如果不存在这样的键,则返回 null。K lowerKey(K key);
返回严格小于给定键的最大键;如果不存在这样的键,则返回 null。NavigableSet<K> navigableKeySet();
返回此映射中所包含键的 NavigableSet 视图。V put(K key, V value);
将指定值与此映射中的指定键进行关联。void putAll(Map<? extends K,? extends V> map);
将指定映射中的所有映射关系复制到此映射中。V remove(Object key);
如果此 TreeMap 中存在该键的映射关系,则将其删除。int size();
返回此映射中的键-值映射关系数。NavigableMap<K,V> subMap(K fromKey, boolean fromInclusive, K toKey, boolean toInclusive);
返回此映射的部分视图,其键的范围从 fromKey 到 toKey。SortedMap<K,V> subMap(K fromKey, K toKey);
返回此映射的部分视图,其键值的范围从 fromKey(包括)到 toKey(不包括)。SortedMap<K,V> tailMap(K fromKey);
返回此映射的部分视图,其键大于等于 fromKey。NavigableMap<K,V> tailMap(K fromKey, boolean inclusive);
返回此映射的部分视图,其键大于(或等于,如果 inclusive 为 true)fromKey。Collection<V> values();
返回此映射包含的值的 Collection 视图。
四、Hashtable类
1、Hashtable<K,V>基本概念
2、HashTable<K,V>主要方法摘要
void clear();
将此哈希表清空,使其不包含任何键。Object clone();
创建此哈希表的浅表副本。boolean contains(Object value);
测试此映射表中是否存在与指定值关联的键。boolean containsKey(Object key);
测试指定对象是否为此哈希表中的键。boolean containsValue(Object value);
如果此 Hashtable 将一个或多个键映射到此值,则返回 true。Enumeration<V> elements();
返回此哈希表中的值的枚举。boolean equals(Object o);
按照 Map 接口的定义,比较指定 Object 与此 Map 是否相等。int hashCode();
按照 Map 接口的定义,返回此 Map 的哈希码值。boolean isEmpty();
测试此哈希表是否没有键映射到值。Enumeration<K> keys();
返回此哈希表中的键的枚举。Set<K> keySet();
返回此映射中包含的键的 Set 视图。V put(K key, V value);
将指定 key 映射到此哈希表中的指定 value。void putAll(Map<? extends K,? extends V> t);
将指定映射的所有映射关系复制到此哈希表中,这些映射关系将替换此哈希表拥有的、针对当前指定映射中所有键的所有映射关系。V remove(Object key);
从哈希表中移除该键及其相应的值。int size();
返回此哈希表中的键的数量。String toString();
返回此 Hashtable 对象的字符串表示形式,其形式为 ASCII 字符 ", " (逗号加空格)分隔开的、括在括号中的一组条目。Collection<V> values();
返回此映射中包含的键的 Collection 视图。