1.Map集合:该集合存储键值对,一对一对往里面存,而且保证键的唯一性
Hashtable :底层是哈希表数据结构,不可以存入null 键null值,给集合是线程同步的,jdk1.0 效率低、
HashMap: 底层是哈希表数据结构。允许null键和null值。给集合是不同步的 jdk1.2效率高
TreeMap: 底层是二叉树数据结构,线程不同步,可以用于给map集合中的键进行排序;
/**和Set很像其实 Set底层就是用的Map集合。*/
2.containsKey与get方法区别总结
Map集合允许值对象为null,并且没有个数限制,所以当get()方法的返回值为null时,可能有三种情况,一种是在集合中没有该键对象;另一种是该键对象没有映射任何值对象,即值对象为null;第三种是该键有隐身的值,而这个值是“null”。因此,在Map集合中不应该利用get()方法来判断是否存在某个键,而应该利用containsKey()方法来判断;由于containsKey()返回的值是boolean型的,若Map的Key值有对应的Value值,则返回true,否则返回false。
eg:
import java.util.HashMap;
import java.util.Map;
public class TestMap {
public static void main(String[] args) {
Map<String,String> map=new HashMap<String,String>();
map.put("001", null);
map.put("002", "null");
map.put("003", "DoTo");
System.out.println(map.get("001")); //输出结果:null
System.out.println(map.get("002")); //输出结果:null
System.out.println(map.get("003")); //输出结果:DoTo
System.out.println(map.get("004")); //输出结果:null
System.out.println(map.containsKey("001")); //输出结果: true
System.out.println(map.containsKey("002")); //输出结果: true
System.out.println(map.containsKey("003")); //输出结果: true
System.out.println(map.containsKey("004")); //输出结果: false
}
}
3.添加
put(K key ,V value)
putAll(Map<? extends k,? extends v> m);
4.删除
clear()
remove(Object key)
5.判断:(return:boolean)
containsValue(Object value)
containsKey(Object key)
6.通过key获取value
get(Object key)
7. boolean isEmpty();
8.Map中所具有键值对总数:
size()
boolean equals(Object o);
int hashCode();
Set<K> keySet();
Collection<V> values();
Set<Map.Entry<K, V>> entrySet();
keySet()
interface Entry<K,V>{K getKey();V getValue();V setValue(V value);boolean equals(Object o);int hashCode();}