zoukankan      html  css  js  c++  java
  • hashmap和hashtable,arraylist和vector的区别

    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);
            }
        }
  • 相关阅读:
    浅析Json底层
    浅析servlet
    xml树结构
    JS中BOM和DOM之间的关系
    Test openLiveWriter
    JAVA静态代理动态代理详解
    java多态实现示例
    java类中的变量以及方法的执行顺序
    java值传递
    将javaweb项目部署到服务器中
  • 原文地址:https://www.cnblogs.com/aigeileshei/p/6058419.html
Copyright © 2011-2022 走看看