正好碰到一个Vector存储数据的问题,以前用的都是ArrayList,遍查了一些这两个类的资料,顺便把其它两个比较类似的HashMap和HashTable的资料也整理了一下,如下:
ArrayList和Vector
ArrayList和Vector都实现了可变大小的对象数组,允许存储所有元素。
同步性:ArrayList是unsynchronized的,Vector是synchronized的。使用上在于创建Iterator对象上,因为Vector是同步的,当一个Iterator被创建而且正在被使用,另一个线程改变了Vector的状态(例如,添加或删除了一些元素),这时调用Iterator的方法时将抛出ConcurrentModificationException。因此Vector多用于队列和堆栈操作。
数据增长:当数据量超过默认容量时,ArrayList默认增长为原来的一半,而Vector增量为原来容量的一倍。
HashTable和HashMap
Hashtable和HashMap都继承Map接口,实现一个key-value映射的哈希表。
对于HashTable,HashTable是同步的,任何非空(non-null)的对象都可作为key或者value。而HashMap是非同步的并且允许null,即null value和null key。
还有一些不同还没弄明白,先把资料放这里:
682

被折叠的 条评论
为什么被折叠?



