跟王老师学集合(七)ArrayList和Vector实现类

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





来自为知笔记(Wiz)


你可能感兴趣的:(java,vector,学习目标)