java的一些数据结构

来源:互联网 发布:c语言中str 编辑:程序博客网 时间:2024/05/21 17:05

Collection
├List
│├LinkedList
│├ArrayList
│└Vector
│ └Stack
└Set
Map
├Hashtable
├HashMap
└WeakHashMap


Vector 和 ArrayList:

Vector和ArrayList 都是可以动态改变大小的数组。

不同的是Vector的方法是同步的(Synchronized),是线程安全的(thread-safe),而ArrayList的方法不是。由于线程的同步必然要影响性能,因此,ArrayList的性能比Vector好。

当Vector或ArrayList中的元素超过它的初始大小时,Vector会将它的容量翻倍,而ArrayList只增加50%的大小,所以ArrayList 有利于节约内存空间。


HashMap和Hashtable:

Hashtable是Dictionary的子类,HashMap是Map接口的一个实现类;


Hashtable中的方法是同步的,而HashMap中的方法是非同步的。

但是HashMap也可以实现同步,通过Collections的一个静态方法:

Map Collections.synchronizedMap(Map m)

这个方法返回的同步的Map封装了底层HashMap的所有方法,使得HashMap在多线程的环境下也是安全的。


在HashMap中,null可以作为key。get()方法可以返回null值,表示该key所对应的value为null。

HashMap有containsKey()方法,可以用来判断是否存在某个key。



原创粉丝点击