ArrayList和Vector异同与HashMap和Hashtable异同

主讲人:王少华  QQ群号:483773664

学习目标:

1、ArrayList和Vector异同

2、HashMap和Hashtable异同

一、ArrayList和Vector异同

ArrayList和Vector在用法上几乎完全相同

Vector是一个古老的集合,从JDK1.0就有了,从JDK1.2以后,Java提供了系统的集合框架,就将Vector改为实现List接口

ArrayList和Vector的显著区别是:

        ArrayList是线程不安全的,如果有超过一条纯种修改了ArrayList集合,则程序必须手动保证该集合的同步性;

               Vector集合则是线程安全的,无须程序保证该集合的同步性。

               因为Vector是线程安全的,所以Vector的性能比ArrayList性能要低。

二、HashMap和Hashtable异同

HashMap和Hashtable都是Map接口的典型实现类,Hashtable是一个古老的Map实现类

HashMap和Hashtable的区别:

    Hashtable是线程安全的Map实现,HashMap是线程不安全的实现。

    Hashtable不允许使用null作为key和value,如果试图把null值放进Hashtable中,将会引发NullPointerException异常;但HashMap可以使用null作为key或value

1
2
3
4
5
6
7
8
9
10
11
public class Test {
    public static void main(String[] args) {
        HashMap hm = new HashMap();
        //试图将两个key为null的key-value对放入HashMap中
        hm.put(null, null);
        hm.put(null,null);//会将上面的覆盖
        hm.put(null, "b");//会将上面的覆盖
        hm.put("a", null);
        System.out.println(hm);
    }
}


三、视频地址

http://edu.51cto.com/course/course_id-6028.html