Vector向量

vector类似动态数组,向量和数组类似,但是数组容量一旦确定不可更改,而向量的容量可变。向量只可以保存任何类型对象且容量不限制,数组对元素类型无限制但是容量有限。

适用场合:向量适用频繁增删元素且元素数组不确定情况、元素都是对象、

数组适合对象数目确定、基础数据类型的元素。

构造方法:

public Vector();

public Vector(int initialCapacity);指定初始容量,超过容量系统自动增加一倍

public Vector(int initialCapacity,int CapacityIncrement);指定初始容量和增长增量,CapacityIncrement为0是默认自动增加一倍(向量的自动增长多于所需内存空间的)

public Vector(Collection<? extends E> c);指定集合构造vector

属性:

protected int capacityIncrement 向量的增量

protected int elementCount 向量的元素个数

protected Object elementData[]  向量成员的缓冲区

常用方法:

void addElement(Object obj);添加到尾部,容量增1

int capacity()返回向量容量

boolean contains(Object obj)判断向量是否包含指定元素

void copyInfo(Object Array[])将向量复制到数组

synchronized Object elementAt(int index)返回指定位置元素,下标非法时抛出ArrayIndexOutOfBoundsException异常

void ensureCapacity(int size)设置向量最小容量为size

synchronized Object firstElement()返回第一个元素,向量为空时抛出NoSuchElementException异常

int indexOf(Object element)返回元素下标,不存在时返回-1

int indexOf(Object element,int start)指定位置开始搜索元素,返回下标值,不存在时返回-1

void insertElementAt(Object obj,int index)指定位置插入,此位置后的内容往后移动1

boolean isEmpty()判断向量是否为空

synchronized Object lastElement()返回向量的最后一个元素,向量为空时抛出NoSuchElementException

int lastIndexOf(Object element)从向量尾开始搜索,返回元素下标

int lastIndexOf(Object element,int start)从指定位置开始向前搜索,返回元素下标

boolean removeElement(Object obj)删除指定元素,若有多个只删除第一个

void removeAllElements()删除所有,容量变为0

void removeElementAt(int index)删除指定位置元素

void setElementAt(Object obj,int index)替换指定位置内容

void setSize(int size)将向量长度设置为size,新长度小于原长度则元素丢失,大于原长度,则自动置为null

int size()返回向量中元素个数

String toString()向量转换为字符串

示例:

package test;

import java.util.Arrays;

import java.util.*;

public class VectorTest {

public static void main(String[] args) {

Vector<String> vector = new Vector<String>();

vector.add("vector1");

vector.addElement("vector2");

vector.add("向量3");

vector.addElement("向量4");

vector.insertElementAt("向量5插入", 2);

System.out.println("1-向量:"+vector);

vector.setElementAt("向量替换1", 1);

System.out.println("2-向量:"+vector+vector.size());

System.out.println("3-向量:"+vector.lastElement());

System.out.println("4-向量:"+vector.lastIndexOf("vector1"));

//不存在元素vector2

if(vector.indexOf("vector2")==-1){

System.out.println("5-向量:"+vector.indexOf("vector2"));

}

System.out.println("6-向量:"+vector.contains("向量4"));

String[] arr= new String[5];

//向量复制到数组

vector.copyInto(arr);

System.out.println("7-数组打印:"+Arrays.toString(arr));

vector.removeAllElements();

System.out.println("8-向量:"+vector.isEmpty());

vector = new Vector<String>(Arrays.asList(arr));

System.out.println("9-向量:"+vector);

System.out.println("10-向量toString打印:"+vector.toString());

for(String vec : vector){

System.out.println(vec);

}

}

}

最新文章

  1. WebStrom与Github连接
  2. asp.net(C#)时间相减 得到天数、小时、分钟、秒差
  3. 提高c++性能的编程技术笔记
  4. (转)为什么安装win10后其他软件不能上网
  5. 使用subst创建虚拟磁盘及设置分区卷标
  6. TMethod的学习与使用
  7. iOS提交AppStore后申请加急审核(转)
  8. Android 桌面不显示应用图标
  9. Student implements java.io.Serializable
  10. xtrabackup备份mysql数据库的使用方法
  11. Flask 学习 十五 性能
  12. 防止SpringMVC拦截器拦截js等静态资源文件
  13. Json格式获取接口返回的值
  14. 【Linux命令】linux一次性解压多个.gz或者.tar.gz文件
  15. socket-WebSocket-HttpListener-TcpListener服务端客户端的具体使用案例
  16. tensorflow finuetuning 例子
  17. Git Extensions system.invalidoperationexception尚未提供文件名,因此无法启动进程
  18. 机器学习英雄访谈录之 Kaggle Kernels 专家:Aakash Nain
  19. SSH登录警告(WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!)
  20. liunx相关指令

热门文章

  1. 为什么StringBuilder是线程不安全的?StringBuffer是线程安全的?
  2. Python—字符串和常用数据结构
  3. jmeter性能分析
  4. python中os模块再回顾
  5. 进击的.NET 在云原生时代的蜕变
  6. 主动降噪技术(ANC)的前生今世--概念历史
  7. linux mysql中文乱码解决
  8. javaweb中文中乱码分析与解决
  9. 算法题解:最大或最小的K个数(海量数据Top K问题)
  10. RocketMQ 源码学习笔记————Producer 是怎么将消息发送至 Broker 的?