b2c信息网

您现在的位置是:首页 > 热点问题 > 正文

热点问题

vector源码java(vector中文网)

hacker2022-10-01 20:00:19热点问题83
本文目录一览:1、java中的vector是什么意思呢2、

本文目录一览:

java中的vector 是什么意思呢

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

1、数组:java arrays的元素个数不能下标越界,从很大程度上保证了java程序的安全性,但创建时必须指定数组的大小,并不能再改变。

2、vector:对比于array,当更多的元素被加入进来以至超出其容量时,vector的size会动态增长,而array容量是定死的。同时,vector在删除一些元素后,其所有下标大于被删除元素的元素都依次前移,并获得新下标比原来的小了)。

java中vector是什么?

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

Java中Vector的定义

Vector 可实现自动增长的对象数组。

java.util.vector提供了向量类(vector)以实现类似动态数组的功能。在Java语言中没有指针的概念,但如果正确灵活地使用指针又确实可以大大提高程序的质量。比如在c,c++中所谓的“动态数组”一般都由指针来实现。为了弥补这个缺点,Java提供了丰富的类库来方便编程者使用,vector类便是其中之一。事实上,灵活使用数组也可以完成向量类的功能,但向量类中提供大量的方法大大方便了用户的使用。

创建了一个向量类的对象后,可以往其中随意插入不同类的对象,即不需顾及类型也不需预先选定向量的容量,并可以方便地进行查找。对于预先不知或者不愿预先定义数组大小,并且需要频繁地进行查找,插入,删除工作的情况。可以考虑使用向量类。

向量类提供了三种构造方法:

public vector()

public vector(int initialcapacity,int capacityIncrement)

public vector(int initialcapacity)

举例说明:

import java.util.Vector;

import java.lang.*;

import java.util.Enumeration;

public class VectorApp

{

public static void main(String args[])

{

Vector v1 = new Vector();

Integer integer1= new Integer(1);

//加入为字符串对象

v1.addElement("one");

//加入的为integer的对象

v1.addElement(integer1);

v1.addElement(integer1);

v1.addElement("two");

v1.addElement(new Integer(2));

v1.addElement(integer1);

v1.addElement(integer1);

//转为字符串并打印

System.out.println("The Vector v1 is:\n\t"+v1);

//向指定位置插入新对象

v1.insertElement("three",2);

v1.insertElement(new Float(3.9),3);

System.out.println("The Vector v1(used method

insertElementAt()is:\n\t)"+v1);

//将指定位置的对象设置为新的对象

//指定位置后的对象依次往后顺延

v1.setElementAt("four",2);

System.out.println("The vector v1 cused method setElmentAt()is:\n\t"+v1);

v1.removeElement(integer1);

//从向量对象v1中删除对象integer1

//由于存在多个integer1,所以从头开始。

//找删除找到的第一个integer1.

Enumeration enum = v1.elements();

System.out.println("The vector v1 (used method removeElememt()is");

while(enum.hasMoreElements())

System.out.println(enum.nextElement()+"");

System.out.println();

//使用枚举类(Enumeration)的方法取得向量对象的每个元素。

System.out.println("The position of Object1(top-to-botton):"+v1.indexOf(integer1));

System.out.println("The position of Object1(tottom-to-top):"+v1.lastIndexOf(integer1));

//按不同的方向查找对象integer1所处的位置

v1.setSize(4);

System.out.println("The new Vector(resized the vector)is:"+v1);

//重新设置v1的大小,多余的元素被抛弃

}

}

运行结果:

运行结果:

E:\java01java VectorApp

The vector v1 is:[one,1,1,two,2,1,1]

The vector v1(used method insetElementAt()) is:

[one,1,three,3.9,1,two,2,1,1]

The vector v1(used method setElementAt()) is:

[one,1,four,3.9,1,two,2,1,1]

The vector v1(useed method removeElement()) is:

one four 3.9 1 two 2 1 1

The position of object1(top-to-botton):3

The position of object1(botton-to-top):7

The new Vector(resized the vector) is:

[one,four,3.9,1]

发表评论

评论列表

  • 南殷娇痞(2022-10-02 01:47:09)回复取消回复

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