zoukankan      html  css  js  c++  java
  • List集合--Vector子类

    Vector子类
      Vector是一个原始古老的程序类,这个类是在JDK1.0的时候就提供的,而后到了JDK1.2的时候,由于有一部分开发者已经习惯于使用Vector,并且许多的系统类也是基于Vector实现的,考虑到其使用的广泛性,所以类集框架将其保存下来,并且让其多实现了一个List的接口.
    --观察Vector的定义结构

    --可以发现继承结构与ArratList是相同的

     1 public class VectorDemo {
     2     public static void main(String[] args) {
     3         List<String> all = new Vector<>();
     4         all.add("hello");
     5         all.add("hello");
     6         all.add("world");
     7         all.add("test");
     8         all.forEach(System.out::println);
     9     }
    10 }

    --运行结果

    hello
    hello
    world
    test
    
    Process finished with exit code 0

    --进一步观察Vector类的实现:

    public Vector() {
    this(10);
    }
    public Vector(int initialCapacity) {
    this(initialCapacity, 0);
    }
    public Vector(int initialCapacity, int capacityIncrement) {
    super();
    if (initialCapacity < 0)
    throw new IllegalArgumentException("Illegal Capacity: "+
    initialCapacity);
    this.elementData = new Object[initialCapacity];
    this.capacityIncrement = capacityIncrement;
    }

    --Vector类如果使用的是无参的构造方法,则一定会开辟一个10个长度的数组,而后其余的实现操作与ArrayList是相同的.通过查看源代码,可以发现Vectory中的方法采用的都是Synchronized同步处理,而ArrayList中并没有进行同步处理,所以Vector中的方法在多线程访问的时候是属于线程安全的,但是性能不如ArrayList高.

  • 相关阅读:
    钉钉服务器端SDK PHP版
    戒不掉
    亲历钓鱼网站
    我整理的PHP 7.0主要新特性
    JavaScript中JSON的处理心得
    X3D中Profile如何翻译
    你可以写什么?
    Gitblit中采用Ticket模式进行协作开发
    理解JavaScript中的事件处理 阻止冒泡event.stopPropagation();
    测试Remoting三种信道Http,Tcp,Ipc和Web Service的访问速度 (转)
  • 原文地址:https://www.cnblogs.com/skykuqi/p/11446534.html
Copyright © 2011-2022 走看看