Map接口:
1、实现Map接口的类用来存储键(key)值(value)对
2、Map接口的实现类有HashMap和TreeMap等
3、Map类中存储的键值对通过键来标识,所以键值不能重复
* HashMap与HashTable的区别
* 1、版本不同:HashMap是JDK1.2,Hashtable是JDK1.0,
* 2、继承父类不同:HashMap继承了AbstractMap,实现了Map接口;HashTable继承了Dictionary,也实现了Map接口
* 3、 HashMap允许null键和null值,但是null作为key只允许有一个;Hashtable不能有null的键和值
* 4、线程:HashMap是线程不同步的(效率高,安全性低), Hashtable是线程同步的(效率低,安全性高)
import java.util.Collection;
import java.util.HashMap;
import java.util.Set;
public class TestHashMap {
public static void main(String[] args) {
//Map接口的特点:key不允许重复,而且key是无序的
//创建集合对象
HashMap hm=new HashMap();
//1、添加元素 put(Object key,Object value);
hm.put(10, "hello");
hm.put(11, "world");
hm.put(12, "java");//如果key重复,值将进行覆盖
//2、siza();--返回int类型数据
System.out.println(hm.size());
//3、isEmpty(); --返回Boolean类型
System.out.println(hm.isEmpty());
//4、remove(Object key); --先输出,后移除
System.out.println(hm.remove(10));
//5、remove(Object key,object value); --返回Boolean类型,本次删除为true,找不到或者已被删除返回false
System.out.println(hm.remove(10, "hello"));
//6、判断containsKey();containsValue();--判断是否包含key或者value,返回Boolean类型
System.out.println(hm.containsKey(10)+"\t"+hm.containsValue("java"));
//7、获取元素 get(Object key);返回key对应的键值,若没有返回null
System.out.println(hm.get(12)+"\t"+hm.get(13));
//8、获取所有key的集合keySet();
Set set=hm.keySet();
for(Object obj:set){
System.out.println(obj);
}
//System.out.println(hm.keySet());
//9、获取所有值value的集合
Collection c=hm.values();
for(Object obj:c){
System.out.println(obj);
}
}
}