package LyfPractice;
import java.util.*;
/**
* Created by fangjiejie on 2016/12/19.
*/
/*Hashmap和Hashtable的区别
1.相同:都实现了Map接口,实现了key和value的保存与映射,有很多相同的方法
2.不同:
Hashmap:是map接口的实现类 ,非同步,线程不安全 ,速度快,可以有null键(用containsKey判断是否存在某个键)
Hashtable:继承了Dictionary类, 同步,线程安全,速度慢,不可以有null键
*/
public class Hash {
public static void main(String[] args) {
Hashtable<String,Integer> l=new Hashtable<>();
/*HashMap<String,Integer> l=new HashMap<>();速度快不安全
下面的遍历方式中只有Enumeration不能用,因为Enumeration是同步的*/
l.put("A",1);
l.put("B",2);
l.put("C",3);
//遍历方案一
Collection<Integer> vl=l.values();
Iterator<Integer> it=vl.iterator();
while(it.hasNext()){
System.out.println(it.next());
}
//遍历方案二
Enumeration<String> kl=l.keys();
while(kl.hasMoreElements()){
String key=kl.nextElement();
System.out.println(key+"---"+l.get(key));
}
//遍历方案三
Set<String> s=l.keySet();
Iterator<String> kl0=s.iterator();
while(kl0.hasNext()){
String key=kl0.next();
System.out.println(key+"------"+l.get(key));
}
//遍历方案四
Set <Map.Entry<String,Integer>> sl=l.entrySet();//装到set集合中,是因为set下有一个entrySet方法,使得Map系列转化为Set系列,以便于遍历
Iterator<Map.Entry<String,Integer>> its=sl.iterator();//Iterator只能对list,set系列遍历
while(its.hasNext()){
Map.Entry<String,Integer> m=its.next();
System.out.println(m.getKey()+":"+m.getValue());
}
}
}
java---Map接口的实现类HashMap和Hashtable
最新推荐文章于 2024-04-08 21:12:50 发布