码迷,mamicode.com
首页 > 其他好文 > 详细

hashmap和hashtable,arraylist和vector的区别

时间:2016-11-13 14:12:58      阅读:190      评论:0      收藏:0      [点我收藏+]

标签:div   存储   相同   cap   容量   rar   大于   als   shm   

hashmap线程不安全,hashtable线程安全

hashmap允许使用 null 值和 null 键。(除了非同步和允许使用 null 之外,HashMap 类与 Hashtable 大致相同。)此类不保证映射的顺序,特别是它不保证该顺序恒久不变。 

hashtable任何非 null 对象都可以用作键或值。为了成功地在哈希表中存储和获取对象,用作键的对象必须实现 hashCode 方法和 equals 方法。

 

arraylist线程不安全,vector线程安全

arraylist和vector的初始大小都是10.

vector:向量的大小大于其容量时,容量自动增加的量。如果容量的增量小于等于零,则每次需要增大容量时,向量的容量将增大一倍。

Arraylist默认扩充1.5倍。

JDK1.6中的源码:

// 确定ArrarList的容量。
// 若ArrayList的容量不足以容纳当前的全部元素,设置 新的容量=“(原始容量x3)/2 + 1”
    public void ensureCapacity(int minCapacity) {
        modCount++;  // 将“修改统计数”+1
        int oldCapacity = elementData.length;
        if (minCapacity > oldCapacity) {
            Object oldData[] = elementData;
            int newCapacity = (oldCapacity * 3)/2 + 1;
            if (newCapacity < minCapacity)
                newCapacity = minCapacity;
            elementData = Arrays.copyOf(elementData, newCapacity);
        }
    }

 

hashmap和hashtable,arraylist和vector的区别

标签:div   存储   相同   cap   容量   rar   大于   als   shm   

原文地址:http://www.cnblogs.com/aigeileshei/p/6058419.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!