java集合之Vector向量基础

Posted 香水炸弹熊

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java集合之Vector向量基础相关的知识,希望对你有一定的参考价值。

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向量基础的主要内容,如果未能解决你的问题,请参考以下文章

Java 之 Vector 集合

Java基础之 集合体系结构(CollectionListArrayListLinkedListVector)

java基础之----集合

Java基础加强之集合

Java基础知识之集合

jdk源码阅读笔记之java集合框架(基础篇)