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高.

  • 相关阅读:
    HDU1007
    DFA
    netstat
    Sangfor
    JS 基础逻辑关系
    正则表达式
    JS中的DOM
    HTML、CSS、JS面试题
    JS作用域和作用域链
    JS String与正则表达式
  • 原文地址:https://www.cnblogs.com/skykuqi/p/11446534.html
Copyright © 2011-2022 走看看