详解Java编程中向量(Vector)的应用

 更新时间:2015年10月07日 17:32:40   投稿:goldensun  
这篇文章主要介绍了Java中的向量(Vector)的应用,Vector也是Java中比较常用的一个类,需要的朋友可以参考下

Vector(向量)是 java.util 包中的一个类,该类实现了类似动态数组的功能。

向量和数组相似,都可以保存一组数据(数据列表)。但是数组的大小是固定的,一旦指定,就不能改变,而向量却提供了一种类似于“动态数组”的功能,向量与数组的重要区别之一就是向量的容量是可变的。

可以在向量的任意位置插入不同类型的对象,无需考虑对象的类型,也无需考虑向量的容量。

向量和数组分别适用于不同的场合,一般来说,下列场合更适合于使用向量:
如果需要频繁进行对象的插入和删除工作,或者因为需要处理的对象数目不定。
列表成员全部都是对象,或者可以方便的用对象表示。
需要很快确定列表内是否存在某一特定对象,并且希望很快了解到对象的存放位置。

向量作为一种对象提供了比数组更多的方法,但需要注意的是,向量只能存储对象,不能直接存储简单数据类型,因此下列场合适用于使用数组:

  • 所需处理的对象数目大致可以确定。
  • 所需处理的是简单数据类型。

向量的使用

向量必须要先创建后使用,向量的大小是向量中元素的个数,向量的容量是被分配用来存储元素的内存大小,其大小总是大于向量的大小。下面是 Vector 的构造方法:

Vector(); //①创建空向量,初始大小为 10
Vector(int initialCapacity); //②创建初始容量为 capacity 的空向量
Vector(int initialCapacity,int capacityIncrement); //③创建初始容量为 initialCapacity,增量为 capacityIncrement 的空向量


使用第①种方式系统会自动对向量进行管理。

使用第②种方式,会创建一个初始容量(即向量可存储数据的大小)为 initialCapacity 的空向量,当真正存放的数据超过该容量时,系统会自动扩充容量,每次增加一倍。

使用第③中方式,会创建一个初始容量为 initialCapacity 的空向量,当真正存放的数据超过该容量时,系统每次会自动扩充 capacityIncrement。如果 capacityIncrement 为0,那么每次增加一倍,。

通过分配多于所需的内存空间,向量减少了必须的内存分配的数目。这样能够有效地减少分配所消耗的时间,每次分配的额外空间数目将由创建向量时指定的增量所决定。

除了构造方法外,向量类还提供了三个属性变量,分别为:

protected int capacityIncrement; //当向量大小不足时,所用的增量大小
protected int elementCount; //向量的元素个数
protected Object elementData[]; //向量成员数据所用的缓冲


一旦创建了Vector类的实例,就可以用其方法来执行插入、删除以及查找对象等操作,向量类提供了极为丰富的方法,下表给出了一些常用的方法:



与数组相同,向量对象也可以通过 new 操作符实现。其语句为:

  Vector vector=new Vector();

相关文章

  • SpringBoot下载文件的正确解法方式

    SpringBoot下载文件的正确解法方式

    这篇文章主要给大家介绍了关于SpringBoot下载文件的正确解法方式,SpringBoot是一款流行的框架,用于开发Web应用程序,在使用SpringBoot构建Web应用程序时,可能需要实现文件下载的功能,需要的朋友可以参考下
    2023-08-08
  • Java中的CopyOnWriteArrayList容器解析

    Java中的CopyOnWriteArrayList容器解析

    这篇文章主要介绍了Java中的CopyOnWriteArrayList容器解析,CopyOnWriteArrayList容器允许并发读,读操作是无锁的,性能较高。至于写操作,比如向容器中添加一个元素,则首先将当前容器复制一份,然后在新副本上执行写操作,需要的朋友可以参考下
    2023-12-12
  • Java中的Object类用法总结

    Java中的Object类用法总结

    Java是一种面向对象的编程语言,它提供了一个非常强大的类库,其中一个基本类是Object类,下面这篇文章主要给大家介绍了Java中Object类用法的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-04-04
  • Mybatis返回结果封装map过程解析

    Mybatis返回结果封装map过程解析

    这篇文章主要介绍了Mybatis返回结果封装map过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-09-09
  • SpringBoot生产环境打包如何去除无用依赖

    SpringBoot生产环境打包如何去除无用依赖

    这篇文章主要介绍了SpringBoot生产环境打包如何去除无用依赖问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-09-09
  • 如何使用Spring Security手动验证用户的方法示例

    如何使用Spring Security手动验证用户的方法示例

    这篇文章主要介绍了如何使用Spring Security手动验证用户的方法示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-05-05
  • MyBatis Spring集成完全指南(史上最全)

    MyBatis Spring集成完全指南(史上最全)

    MyBatis-Spring是一个库,用于无缝集成MyBatis和Spring框架,实现事务管理、自动创建Mapper和SqlSession、异常转换等功能,本文给大家介绍MyBatis Spring集成完全指南,感兴趣的朋友跟随小编一起看看吧
    2025-10-10
  • 养成良好java代码编码规范

    养成良好java代码编码规范

    这篇文章主要介绍了如何养成良好java代码编码规范,规范需要平时编码过程中注意,是一个慢慢养成的好习惯,下面小编就带大家来一起详细了解一下吧
    2019-06-06
  • 使用socket进行服务端与客户端传文件的方法

    使用socket进行服务端与客户端传文件的方法

    这篇文章主要介绍了使用socket进行服务端与客户端传文件的方法,需要的朋友可以参考下
    2017-08-08
  • Java异步线程中的CompletableFuture与@Async详解

    Java异步线程中的CompletableFuture与@Async详解

    这篇文章主要介绍了Java异步线程中的CompletableFuture与@Async详解,CompletableFuture是java中提供的一个异步执行类,@Async是Spring提供的异步执行方法,当调用方法单独开启一个线程进行调用,需要的朋友可以参考下
    2024-01-01

最新评论