Java数据结构(一):Vector

1 Vector对象的创建

在使用Vector对象时,需要导入java包:java.util.Vector。

import java.util.Vector;


Vector的创建方式如下,尖括号中可以填写任何的类名(如果想使用基本数据类型,需要填入对应的包装类),该类便是Vector对象中各个元素的类型。

Vector<Integer> v = new Vector<Integer>(); //整型向量
Vector<Double> v = new Vector<Double>(); //双精浮点型向量

2 向Vector对象添加元素

可以使用add与addElement函数来添加元素,两者在使用上没有太大的区别。add的返回值是boolean类型,addElement的返回值是void类型。

Vector<Integer> v = new Vector<Integer>();
v.add(3);                  //add的返回值是boolean类型
v.add(5);
v.add(8);
v.addElement(10);              //addElement的返回值是void类型
for(int e:v)System.out.print(e+" ");  //遍历数组元素,输出: 3 5 8 10

3 读取和修改Vector中的元素

get:根据下标读取元素
set:根据下标修改元素

Vector<Integer> v = new Vector<Integer>();
v.add(3);
v.add(5);
v.add(8);
v.add(10);
for(int e:v)System.out.println(e);      //输出: 3 5 8 10 
System.out.println(v.get(2));       //v.get(2)为读取v中的第2个元素,因此输出:8
v.set(0,100);                //修改第0个元素为100
v.set(3,200);                //修改第3个元素为200
for(int e:v)System.out.println(e);    //输出: 100 5 8 200 

4 移除Vector中的元素


remove:根据下标移除元素
clear:移除所有元素

Vector<Integer> v = new Vector<Integer>();
    v.add(3);
    v.add(5);
    v.add(8);
    v.add(10);
    v.remove(1);                   //移除第1个元素"5"
    for(int e:v)System.out.print(e + " ");    //输出: 3 8 10
    v.clear();
    System.out.println("向量v的长度为" + v.size());//size()返回向量的长度,输出: 向量v的长度为0


5 遍历Vector中的元素


・下标遍历

Vector<Integer> v = new Vector<Integer>();
v.add(3);
v.add(5);
v.add(8);
v.add(10);
for(int i = 0 ;i<v.size();i++)System.out.print(v.get(i) + " ");//使用下标遍历,输出: 3 5 8 10

・foreach遍历

以上例子多次使用的就是这种方式

Vector<Integer> v = new Vector<Integer>();
v.add(3);
v.add(5);
v.add(8);
v.add(10);
for(int e:v)System.out.print(e + " ");//使用foreach风格遍历,输出: 3 5 8 10

 ・迭代器遍历

由于需要使用Iterator对像,所以需要导入下面的包

import java.util.Iterator;
Vector<Integer> v = new Vector<Integer>();
v.add(3);
v.add(5);
v.add(8);
v.add(10);
Iterator iterator = v.iterator();
while (iterator.hasNext()) {
   System.out.println(iterator.next());//输出: 3 5 8 10
}

6 查询搜索

contains与isEmpty函数

Vector<Integer> v = new Vector<Integer>();
v.add(3);
v.add(5);
v.add(8);
v.add(10);
System.out.println(v.contains(8));//因为向量v元素里包含"8",所以输出:true
System.out.println(v.contains(7));//因为向量v元素里不包含"7",所以输出:false
System.out.println(v.isEmpty());//因为向量v里元素个数不为0,所以输出:false
Vector<Integer> v1 = new Vector<Integer>();
System.out.println(v1.isEmpty());//因为向量v1里没有元素,所以输出:true

indexOf:从向量头(或指定下标)开始搜索,返回所遇到的第一个对象对应的下标,若不存在此对象,返回-1.
lastindexOf:从向量尾部(或指定下标)开始逆向搜索对象. 返回所遇到的第一个对象对应的下标,若不存在此对象,返回-1. 

Vector<Integer> v = new Vector<Integer>();
v.add(3);
v.add(5);
v.add(8);
v.add(5);
v.add(10);
System.out.println(v.indexOf(5));//第一个"5"的下标为1,所以输出: 1
System.out.println(v.indexOf(5,2));//从第2个元素开始搜索"5",所以输出: 3
System.out.println(v.lastIndexOf(5));//从尾部开始逆向搜索"5",所以输出: 3
System.out.println(v.lastIndexOf(5,2));//从第2个元素开始逆向搜索"5",所以输出: 1

猜你喜欢

转载自www.cnblogs.com/LiuJiandong/p/10690840.html