Vector

vector是一种单口的容器,vector所指的内容是一片连续的空间,支持随机访问(Random Access),此外,vector容器的空间是动态增长的。
1.动态数组 元素下表从0开始
2.同步访问
tip:
所谓动态增加大小,并不是在原空间之后续接新空间(因为无法保证原空间之后尚有可配置的空间),而是一块更大的内存空间,然后将原数据拷贝新空间,并释放原空间。因此,对vector的任何操作,一旦引起空间的重新配置,指向原vector的所有迭代器就都失效了。这是程序员容易犯的一个错误,务必小心。
2.矢量队列,它是JDK1.0版本添加的类
3.Vector中的操作是线程安全的
4.继承 AbstractList
5.实现了 List 它是一个队列,支持相关的添加、删除、修改、遍历等功能.
6.实现了RandmoAccess接口 快速随机访问。
7.实现了Cloneable接口 实现clone()函数。它能被克隆。
Vector的构造函数

Vector共有4个构造函数
// 默认构造函数
Vector();//容量默认大小是10

// capacity是Vector的默认容量大小。当由于增加数据导致容量增加时,每次容量会增加一倍。
Vector(int capacity)

// capacity是Vector的默认容量大小,capacityIncrement是每次Vector容量增加时的增量值。
Vector(int capacity, int capacityIncrement)

// 创建一个包含collection的Vector
Vector(Collection<? extends E> collection)

这里写图片描述
Vector的API

synchronized boolean        add(E object)//插入元素到vector末尾
             void           add(int location, E object)//在location位置插入元素object
synchronized boolean        addAll(Collection<? extends E> collection)//将指定 Collection 中的所有元素添加到此向量的末尾
synchronized boolean        addAll(int location, Collection<? extends E> collection)//在指定位置将指定 Collection 中的所有元素插入到此向量中。
synchronized void           addElement(E object)//将指定的组件添加到此向量的末尾,将其大小增加 1。
synchronized int            capacity()//返回vector的容量   默认是10
             void           clear()//清空clear
synchronized Object         clone()//返回vector的一个副本
             boolean        contains(Object object)//vector是否包含元素object
synchronized boolean        containsAll(Collection<?> collection)//Boolean vector中是否包含collection中所有元素
synchronized void           copyInto(Object[]elements)
synchronized E              elementAt(int location)//获取在第location位置的元素
             Enumeration<E> elements()
synchronized void           ensureCapacity(int minimumCapacity)
synchronized boolean        equals(Object object)
synchronized E              firstElement()//获取第一个元素
             E              get(int location)
synchronized int            hashCode()//返回vectror的哈希码
synchronized int            indexOf(Object object, int location)//返回oject在vector中第一次出现的位置
             int            indexOf(Object object)//返回object所在位置
synchronized void           insertElementAt(E object, int location)
synchronized boolean        isEmpty()//判断容器是否为空
synchronized E              lastElement()//获取vector中最后一个元素
synchronized int            lastIndexOf(Object object, int location)
synchronized int            lastIndexOf(Object object)//倒序查找
synchronized E              remove(int location)//移除指定位置元素
             boolean        remove(Object object)//移除指定元素
synchronized boolean        removeAll(Collection<?> collection)
synchronized void           removeAllElements()
synchronized boolean        removeElement(Object object)
synchronized void           removeElementAt(int location)
synchronized boolean        retainAll(Collection<?> collection)
synchronized E              set(int location, E object)//设置location位置的元素为object
synchronized void           setElementAt(E object, int location)
synchronized void           setSize(int length)//重新定义vector长度   超出长度的元素会被删除
synchronized int            size()//返回容器中元素的个数
synchronized List<E>        subList(int start, int end)//返回vector中从start+1到end位置的元素
synchronized <T> T[]        toArray(T[] contents)
synchronized Object[]       toArray()//转为数组
synchronized String         toString()//转为字符串
synchronized void           trimToSize()//调整容量=vector大小

Vector的继承关系
java.lang.Object
↳ java.util.AbstractCollection
↳ java.util.AbstractList
↳ java.util.Vector

public class Vector
extends AbstractList
implements List, RandomAccess, Cloneable, java.io.Serializable {}

package test;

import java.util.Enumeration;
import java.util.Vector;

public class One {
    public static void main(String args[]){
        Vector vec = new Vector();
        vec.add("one");
        vec.add("two");
        vec.add("three");
        vec.add("four");
        vec.add("five");
        //设置第一个元素"hello"
        vec.set(0, "hello");
        //第三个位置插入元素“panda”
        vec.add(2,"panda");
        System.out.println("vec:"+vec);
        //顺序查找
        System.out.println("获取hello的索引"+vec.indexOf("hello"));
        //倒序查找
        System.out.println("获取hello的索引"+vec.lastIndexOf("panda"));
        System.out.println("获取第一个元素"+vec.firstElement());
        System.out.println("获取第3个元素"+vec.elementAt(2));
        System.out.println("获取最后一个元素"+vec.lastElement());
        System.out.println("获取vector的大小"+vec.size());
        System.out.println("获取vector的总容量"+vec.capacity());//vector默认大小10
        System.out.println("获取vector第2到第4个元素"+vec.subList(1, 4));
        //通过Enumeration 遍历vector
        Enumeration enu = vec.elements();
        while(enu.hasMoreElements()){
            System.out.println("nextElement:  "+enu.nextElement());
        }
        Vector vec2 = new Vector();
        vec2.add("kaka");
        vec2.add("haha");
        System.out.println(vec.retainAll(vec2));
        //获取vec对应的数组
        String[] vecString = (String[])vec.toArray(new String[0]);
        for(String str:vecString){
            System.out.println(str);
        }
        //清空vector
        vec.clear();
        System.out.println("判断vec是否为空"+vec.isEmpty());
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值