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);

}

}

}

java集合之Vector向量基础的更多相关文章

  1. Java基础系列 - JAVA集合ArrayList,Vector,HashMap,HashTable等使用

    package com.test4; import java.util.*; /** * JAVA集合ArrayList,Vector,HashMap,HashTable等使用 */ public c ...

  2. java集合之vector容器

    学完ArrayList和LinkedList之后,我们接着学习Vector.第1部分 Vector介绍第2部分 Vector数据结构第3部分 Vector源码解析(基于JDK1.6.0_45)第4部分 ...

  3. Java集合之Vector

    Vector是矢量队列,它继承了AbstractList,实现了List. RandomAccess, Cloneable, java.io.Serializable接口. Vector接口依赖图: ...

  4. java集合之ArrayList链表基础

    ArrayList可变数组 : arrayList继承AbstractList抽象类,实现list接口,底层基于数组实现.可存放null,除了非同步的之外,大致等同Vector.适用快速访问,复制.序 ...

  5. Java集合之Vector源码分析

    概述 Vector与ArrayLIst类似, 内部同样维护一个数组, Vector是线程安全的. 方法与ArrayList大体一致, 只是加上 synchronized 关键字, 保证线程安全, 下面 ...

  6. java集合之Stack栈基础

    Stack堆栈: 是后进先出(LIFO)的对象堆栈,继承Vector—AbstractList--AbstractCollection类,底层是通过数组实现, boolean empty() 判断堆栈 ...

  7. java 集合(Vector)不做重点

    Vector: 底层也是维护了一个Object数组,实现与ArrayList是一样的, 但其线程是安全的,效率低.除了比较老的系统,是不会用到的. 笔试题:ArrayList 和 Vector 的区别 ...

  8. java集合之linkedList链表基础

    LinkedList链表: List接口的链接列表实现.允许存储所有元素(包含null).使用频繁增删元素. linkedList方法: void addFirst(E e) 指定元素插入列表的开头 ...

  9. Java集合详解1:一文读懂ArrayList,Vector与Stack使用方法和实现原理

    本文非常详尽地介绍了Java中的三个集合类 ArrayList,Vector与Stack <Java集合详解系列>是我在完成夯实Java基础篇的系列博客后准备开始写的新系列. 这些文章将整 ...

随机推荐

  1. springboot Transactional事务的使用

    直接上代码: import javax.transaction.Transactional; @Transactional(rollbackOn = { Exception.class }) publ ...

  2. java基本数据类型与引用类型

    基本数据类型: byte:Java中最小的数据类型,在内存中占8位(bit),即1个字节,取值范围-128~127,默认值0 short:短整型,在内存中占16位,即2个字节,取值范围-32768~3 ...

  3. Pytorch的基础数据类型

    引言 本篇介绍Pytorch的基础数据类型,判断方式以及常用向量 基础数据类型 torch.Tensor是一种包含单一数据类型元素的多维矩阵. 目前在1.2版本中有9种类型. 同python相比,py ...

  4. 使用broker进行Datagurd主备切换报ORA-12514异常

    在使用Datagurd broker进行Datagurd主备切换时报ORA-12514监听异常, 详细信息如下: DGMGRL> switchover to xiaohe; Performing ...

  5. select 源码分析

    ## select(2),同步的 I/O 复用 直接看 epoll 的源码把自己绕晕了,先整个简单点的下手. - [使用](#usage) - [源码分析](#src_analysis) ### se ...

  6. spring web 脚手架 (持续更新中...)

    spring web 脚手架 项目地址: https://github.com/MengW9/scafflod.git 还有觉得哪些可以加上去的配置,欢迎各位拍砖,我会持续更新,大家共同进步 一个通用 ...

  7. FP-Tree算法详细过程(Java实现)

    我就不说FP-Tree的作用.优点什么的了,直接用例子来解释构建FP-Tree和找出所有频繁项集,第一次写博客,不对之处还请指出. 输入文件: testInput.txt T1 T2 T3 T4 T5 ...

  8. Spring 梳理-传递模型数据到视图

    传递model,返回string,不指定返回key package com.jt; import com.myOrg.DeptUserDomain; @Controller @RequestMappi ...

  9. SpringBoot -> @Import使用

    @Import 注解出自spring-context包中 package org.springframework.context.annotation; import java.lang.annota ...

  10. Windows和Linux下scrapy框架的安装

    windows下安装: 1.安装Anaconda环境管理工具 也可以使用pip安装,值得注意的是如果你使用的是pip安装,你需要解决相应的包依赖(解决依赖一般会让你怀疑人生.怀疑scrapy,建议还是 ...