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

java.util.vector提供了向量类(Vector)以实现类似动态数组的功能。

创建了一个向量类的对象后,可以往其中随意插入不同类的对象,即不需顾及类型也不需预先选定向量的容量,并可以方便地进行查找。

对于预先不知或者不愿预先定义数组大小,并且需要频繁地进行查找,插入,删除工作的情况,可以考虑使用向量类。

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

publicvector()public vector(int initialcapacity,intcapacityIncrement)public vector(int initialcapacity)

使用第一种方法系统会自动对向量进行管理,若使用后两种方法,则系统将根据参数,initialcapacity设定向量对象的容量(即向量对象可存储数据的大小),当真正存放的数据个数超过容量时。系统会扩充向量对象存储容量。

参数capacityincrement给定了每次扩充的扩充值。当capacityincrement为0的时候,则每次扩充一倍,利用这个功能可以优化存储。

在Vector类中提供了各种方法方便用户的使用:

插入功能:

(1)public final synchronized void adddElement(Object obj)

将obj插入向量的尾部。obj可以是任何类型的对象。对同一个向量对象,亦可以在其中插入不同类的对象。但插入的应是对象而不是数值,所以插入数值时要注意将数组转换成相应的对象。

例如:要插入整数1时,不要直接调用v1.addElement(1),正确的方法为:

Vector v1 = newVector();

Integer integer1= new Integer(1);

v1.addElement(integer1);

(2) public final synchronized void setElementAt(Object obj,int index)

将index处的对象设置成obj,原来的对象将被覆盖。

(3) public final synchronized void insertElementAt(Object obj,int index)

在index指定的位置插入obj,原来对象以及此后的对象依次往后顺延。

删除功能:

(1) public final synchronized void removeElement(Object obj)

从向量中删除obj,若有多个存在,则从向量头开始试,删除找到的第一个与obj相同的向量成员。

(2) public final synchronized void removeAllElement();

删除向量所有的对象

(3) public fianl synchronized void removeElementAt(int index)

删除index所指的地方的对象

查询搜索功能:

(1)public final int indexOf(Object obj)

从向量头开始搜索obj,返回所遇到的第一个obj对应的下标,若不存在此obj,返回-1.

(2)public final synchronized int indexOf(Object obj,int index)

从index所表示的下标处开始搜索obj.

(3)public final int lastindexOf(Object obj)

从向量尾部开始逆向搜索obj.

(4)public final synchornized int lastIndex(Object obj,int index)

从index所表示的下标处由尾至头逆向搜索obj.

(5)public final synchornized firstElement()

获取向量对象中的首个obj

(6)public final synchornized Object lastElement()

获取向量对象的最后一个obj

其他功能:

(1) public final int size();

此方法用于获取向量元素的个数。它们返回值是向量中实际存在的元素个数,而非向量容量。可以调用方法capacity()来获取容量值。

(2)  public final synchronized void setSize(int newsize);

此方法用来定义向量的大小,若向量对象现有成员个数已经超过了newsize的值,则超过部分的多余元素会丢失。

程序中定义Enumeration类的一个对象Enumeration是java.util中的一个接口类,

(3) public final synchronized Enumeration elements();

此方法将向量对象对应到一个枚举类型。java.util包中的其他类中也都有这类方法,以便于用户获取对应的枚举类型。

在Enumeration中封装了有关枚举数据集合的方法。

方法 hasMoreElement() 来判断集合中是否还有其他元素。

方法 nextElement() 来获取下一个元素

以下代码就是用hasMoreElement()和 nextElement()遍历Vector

importjava.util.Enumeration;importjava.util.Iterator;importjava.util.List;importjava.util.Vector;public classTestVector {public voidtest01() {

Vector hs = new Vector();

hs.add("aa");

hs.add("bb");

hs.add("aa");

hs.add("cc");

hs.add("aa");

hs.add("dd");

printSet2(hs);

}public voidprintSet(List hs) {

Iterator iterator=hs.iterator();while(iterator.hasNext()) {

System.out.println(iterator.next());

}

}public void printSet2(Vectorhs) {

Enumeration elements =hs.elements();while(elements.hasMoreElements()) {

System.out.println(elements.nextElement());

}

}public static voidmain(String[] args) {newTestVector().test01();

}

}

运行结果:

PS:同时也有一个结论 Vector是有序的,可以重复的。

java的vector_Java中 Vector的使用详解相关推荐

  1. c++中vector的用法详解

    c++中vector的用法详解 vector(向量): C++中的一种数据结构,确切的说是一个类.它相当于一个动态的数组,当程序员无法知道自己需要的数组的规模多大时,用其来解决问题可以达到最大节约空间 ...

  2. Java多线程编程中Future模式的详解

    转载自 https://www.cnblogs.com/winkey4986/p/6203225.html Java多线程编程中,常用的多线程设计模式包括:Future模式.Master-Worker ...

  3. java调用项目中的文件_详解eclipse项目中.classpath文件的使用

    1 前言 在使用eclipse或者myeclipse进行java项目开发的时候,每个project(工程)下面都会有一个.classpath文件,那么这个文件究竟有什么作用? 2 作用 .classp ...

  4. Java去除字符串中空格的方法详解

    昨天写了一个关于Excel文件处理的脚本,在字符串匹配功能上总是出现多余不正确的匹配,debug调试之后,发现一个坑. 代码中字符串使用了replaceAll()方法,去除了所有空格(其中包括:首尾空 ...

  5. csdn java社区_java中的io系统详解 - ilibaba的专栏 - 博客频道 - CSDN.NET

    Java 流在处理上分为字符流和字节流.字符流处理的单元为 2 个字节的 Unicode 字符,分别操作字符.字符数组或字符串,而字节流处理单元为 1 个字节,操作字节和字节数组. Java 内用 U ...

  6. java 定义xml_java中web.xml定义详解

    1 定义头和根元素 部署描述符文件就像所有XML文件一样,必须以一个XML头开始.这个头声明可以使用的XML版本并给出文件的字符编码. DOCYTPE声明必须立即出现在此头之后.这个声明告诉服务器适用 ...

  7. java 继承 extends_java中的继承 (extends) 详解

    继承(extends) 1. 父类与子类 父类也叫基类.超类  子类也叫派生类  在继承的而关系中,"子类就是一个父类".也就是说,子类可以被当做父类来看待.例如父类是员工,子类是 ...

  8. java gil,Python中的GIL机制详解

    大家应该都知道,python有一个GIL(全局解释器锁),用于控制多线程的并发行为. 注:GIL不是必须的,可以通过对每个资源单独加锁的方式去掉GIL,也就是将GIL换成更细粒度的锁. GIL锁的实现 ...

  9. java 方法 void_Java中void方法的详解

    详细内容 void方法是Java中一个不可实例化的占位符,当方法用void来修饰时表示没有返回值.它有两个作用分别为对函数参数的限定以及对函数返回值的限定 学习过Java的人都知道,在Java中voi ...

最新文章

  1. python怎么玩pdf_最全总结!聊聊 python 操作PDF的几种方法
  2. C#利用SerialPort类对串口发送接收数据
  3. 恐怖如斯,阿里P9总结的这份Java八股文,已经帮近百人拿到offer了
  4. 使用jXLS将Excel文件解析为JavaBeans
  5. 2019年最值得关注的五大微服务发展趋势
  6. linux系统创建操作系统用户,linux系统中用户组创建管理linux操作系统 -电脑资料...
  7. Ubuntu Linux创建Hadoop用户
  8. ECS的简单入门(二):Entity
  9. Java程序员的薪资取决于工作年限还是技术?
  10. 树莓派安装 Docker CE
  11. 桥田智能:热烈欢迎中欧总经理班的同学们莅临桥田参观、交流
  12. 实战1-数据项目分析流程
  13. Python 用 OpenCV 画椭圆 (5)
  14. 我司何晓磊续签立命馆大学的客座研究员
  15. android qq接口,手机QQ Scheme接口
  16. DedeCMS采集功能
  17. 2017 Unite大会总结
  18. 亿百特E22 lora模块使用教程
  19. 解决uni-app微信小程序IOS没声音
  20. 欧拉函数性质证明 : n所有约数的欧拉函数和等于n

热门文章

  1. xp系统能支持mysql_windowsxp下的mysql集群技术
  2. 【GRE协议】CentOS配置GRE隧道
  3. http参数修改以及拦截
  4. 介绍自己以及github注册流程
  5. Linq学习(零)-错误汇总
  6. LeetCode 295. Find Median from Data Stream
  7. 1小时教你学会正则表达式
  8. CCF201709-2 公共钥匙盒
  9. win7文件和文件夹可以重名吗_Win7下如何重命名,替换System32文件夹下的系统文件...
  10. 今晚8点直播丨经典知识库:数据库对象命名设计规范手册