美文网首页
javase part17 - 集合框架1

javase part17 - 集合框架1

作者: 不再饿肚子给人送饭 | 来源:发表于2017-11-28 11:42 被阅读0次

    Vector 底层依然是一个Object数组,包含了对数组的增删该查操作
    JDK1.1/1.0 时期都是使用Vector
    Vector 和ArrayList的关系

    1.底层算法都是基于数组的
    2.ArrayList是集合框架里提供的新的变长数组,Vector 是ArrayList 的前身
    3.Vector 相对于ArrayList 是同步的,性能较低
    

    ArrayList 源码


    1.png

    Vector 源码


    2.png

    在集合中不能存储基本数据类型,只能存引用数据类型

    jdk1.5 之前手动装箱:
    集合对象.add(Integer.valueOf(1));
    1.5 之后:
    集合对象.add(1);
    

    Vector 和 ArrayList 能否存储相同的元素
    能否保证添加的顺序
    因为这两个类底层都是使用数组实现的,而数组使用索引来区别元素的存储位置,所以元素可以相同,这两个都是有序的

    ArrayList扩容问题:

    public ArrayList():在Java7之前,和Java7开始不一样.
      在Java7之前,默认创建的是一个容量为10的数组. 底层: this(10);
      而从Java7开始,默认创建的是一个没有元素的空数组. 底层: new Object[]{};
      虽然,此时创建的是一个没有元素的空数组,当第一次使用add方法的时候,此时才设定初始容量为10.
    

    相关文章

      网友评论

          本文标题:javase part17 - 集合框架1

          本文链接:https://www.haomeiwen.com/subject/hopsbxtx.html