hashmap和hashtable的区别:
1.hashmap允许键值为null,hashtable不允许键值为null(编译期正常,运行时报异常)
2.hashmap不是线程安全的,hashtable是线程安全的 (具体原因还是没明白,源代码竟然看不懂)
3.hashmap取键值hashmap.getKeySet(),set取数据是用的Iterator,hashtable用的是Enumeration。
4.由于hashmap不是线程安全的,所以速度比hashtable快。
Hashtable hashtable=new Hashtable();
hashtable.put("a", "abound");
hashtable.put("b", "bus");
hashtable.put("c", "class");
Enumeration e=hashtable.keys();
for(;e.hasMoreElements();){
Object object=e.nextElement();
System.out.println(object);
}
System.out.println("");
Set set=hashtable.keySet();
for(Iterator it=set.iterator();it.hasNext();){
Object obj= it.next();
System.out.println(obj);
}
结果是一样的。
LinkedList 和 ArrayList的区别:
1.Linkedlist是增删比较简单,访问时比较慢,如果在最后面追加,要比arraylist麻烦一点,因为LinkedList需要记录前后元素,而ArrayList只是追加值,如果在中间插入的话,LinkedList要比ArrayList快,因为LinkedList只用在此位置加入这个值,然后与前后元素关联。而ArrayList插入的话,需要将此位置的元素都向后挪动。删除原则是一样的。
2.linkedList是双向链表,而ArrayList实现方式是数组。
3.他们都实现List接口
ArrayList与Vector的区别:
1.Vector也实现了List接口,和ArrayList的区别是Vector实现了线程同步,结构和arrayList几乎一样,Vector速度要慢一些。