java的vector,java的vector扩容

发布时间:2023-01-09

本文目录一览:

  1. java中vector是什么?
  2. java中的Vector
  3. java中的vector 是什么意思呢
  4. java中的Vector类
  5. Java中vector的用法

java中vector是什么?

Vector 类可以实现可增长的对象数组。与数组一样,它包含可以使用整数索引进行访问的组件。但是,Vector 的大小可以根据需要增大或缩小,以适应创建 Vector 后进行添加或移除项的操作。 每个向量会试图通过维护 capacity 和 capacityIncrement 来优化存储管理。capacity 始终至少应与向量的大小相等;这个值通常比后者大些,因为随着将组件添加到向量中,其存储将按 capacityIncrement 的大小增加存储块。应用程序可以在插入大量组件前增加向量的容量;这样就减少了增加的重分配的量。 由 Vector 的 iterator 和 listIterator 方法所返回的迭代器是快速失败的:如果在迭代器创建后的任意时间从结构上修改了向量(通过迭代器自身的 remove 或 add 方法之外的任何其他方式),则迭代器将抛出 ConcurrentModificationException。因此,面对并发的修改,迭代器很快就完全失败,而不是冒着在将来不确定的时间任意发生不确定行为的风险。Vector 的 elements 方法返回的 Enumeration 不是 快速失败的。 注意,迭代器的快速失败行为不能得到保证,一般来说,存在不同步的并发修改时,不可能作出任何坚决的保证。快速失败迭代器尽最大努力抛出 ConcurrentModificationException。因此,编写依赖于此异常的程序的方式是错误的,正确做法是:迭代器的快速失败行为应该仅用于检测 bug。

java中的Vector

vector和arraylist都是差不多的,会用arraylist就可以用vector,但是arraylist速度比它快,但是如果涉及到多线程,就用vector,例子演示直接看文档,或者网上查一下,写了也是废话,第二不就是容器吗,一个vector里有一堆装着string的vector,用法一样,就是多了个容器,会有类型检查,其他类型的放不就去

java中的vector 是什么意思呢

java中vector和数据非常类似,两者之间也经常成对出现,下面是两者的比较:

  1. 数组:java arrays的元素个数不能下标越界,从很大程度上保证了java程序的安全性,但创建时必须指定数组的大小,并不能再改变。
  2. vector:对比于array,当更多的元素被加入进来以至超出其容量时,vector的size会动态增长,而array容量是定死的。同时,vector在删除一些元素后,其所有下标大于被删除元素的元素都依次前移,并获得新下标比原来的小了)。

java中的Vector类

在java中的同步,是指多个线程在同时要访问某个对象、变量、方法、代码快等等时,保证只有唯一线程访问同步的对象(即用synchronized修为的内容)。 也可以这样理解:同步就是指保证在同一时刻只有一个线程访问同步对象的前提下,确保操作同步对象的线程顺序,跟他们发出访问同步对象请求时的顺序一致。 Vector是老版本jkd(1.0的时候就有)的一个集合类,因为Vector是同步的而ArrayList是非同步的,所以Vector的性能比ArrayList要差。 在不需要保证同步的情况下。尽量使用ArryList,在需要同步时,可以考虑用Vector(其实在需要同步的条件下,也同样不推荐用Vector,java中有个集合工具类Collections,它可以将一个ArrayList编程线程安全的)。

Java中vector的用法

import java.util.Scanner;
import java.util.Vector;
public class Test {
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Scanner input = new Scanner(System.in);
        System.out.print("请输入总人数:");
        int p = input.nextInt();
        /**** 初始化人员 ***/
        Vector<Integer> v = new Vector<Integer>(); // 初始化人员并进行编号
        for (int i = 1; i <= p; i++) {
            v.add(new Integer(i));
            System.out.print(i + "  ");
        }
        /**** 报号 ***/
        int num = 0;
        while (v.size() > 1) {
            for (int i = 0; i < v.size(); i++) {
                num++;
                if ((num % 3) == 0) {
                    v.remove(i);
                    i--;
                }
            }
        }
        /***** 结果 *****/
        for (int i = 0; i < v.size(); i++) {
            System.out.println("\n最后剩下的数是:" + v.get(i));
        }
    }
}