Java中的Vector:集合框架中的瑰宝!
《Java零基础教学》是一套深入浅出的 Java 编程入门教程。全套教程从Java基础语法开始,适合初学者快速入门,同时也从实例的角度进行了深入浅出的讲解,让初学者能够更好地理解Java编程思想和应用。
本教程内容包括数据类型与运算、流程控制、数组、函数、面向对象基础、字符串、集合、异常处理、IO 流及多线程等 Java 编程基础知识,并提供丰富的实例和练习,帮助读者巩固所学知识。本教程不仅适合初学者学习,也适合已经掌握一定 Java 基础的读者进行查漏补缺。
前言
在日常的Java开发中,经常需要使用到集合框架中的各种数据结构来处理数据。而Vector作为Java集合框架中的一员,也是非常重要的一种数据结构,本文将详细介绍Vector的使用。
摘要
本文主要介绍Java集合框架中的Vector,包括Vector的概念、创建Vector对象、向Vector中添加元素、从Vector中获取元素、Vector的常用方法、Vector的优缺点、测试用例等内容。
内容
1. Vector的概念
Vector是Java集合框架中的一种动态数组(Dynamic Array),它可以根据需要进行扩容或减少容量。与传统的数组不同,Vector的容量可以根据需要自动增长或减少。Vector类实现了List接口,能够存储任意类型的对象。
2. Vector类的构造函数
在使用Vector类之前,先看看Vector类的构造函数:
public Vector()
public Vector(int initialCapacity)
public Vector(int initialCapacity, int capacityIncrement)
public Vector(Collection<? extends E> c)
public Vector()
:创建一个默认大小为10的空向量。public Vector(int initialCapacity)
:创建一个指定大小的空向量。public Vector(int initialCapacity, int capacityIncrement)
:创建一个具有指定初始容量和指定容量增量的空向量。public Vector(Collection<? extends E> c)
:创建一个包含给定集合元素的向量,按照集合的迭代器返回的顺序。
3. 创建Vector对象
在Java中创建Vector对象非常简单,只需使用Vector类的构造函数即可。
Vector<Object> v1 = new Vector<Object>(); //创建一个空的Vector对象
Vector<Object> v2 = new Vector<Object>(10); //创建一个指定容量的Vector对象
Vector<Object> v3 = new Vector<Object>(10, 5); //创建一个指定容量和增量的Vector对象
在上述代码中,第一个Vector对象v1是不带参数的,默认的初始容量为10,增量为0;第二个Vector对象v2指定了初始容量为10,没有指定增量;第三个Vector对象v3指定了初始容量为10,增量为5。
4. 向Vector中添加元素
向Vector中添加元素非常简单,可以使用add()、addElement()、addAll()等方法。
Vector<Object> v = new Vector<Object>();
//使用add()方法添加元素
v.add("Hello");
v.add("World");
//使用addElement()方法添加元素
v.addElement(new Integer(100));
//使用addAll()方法添加元素
ArrayList<Object> list = new ArrayList<Object>();
list.add("Java");
list.add("Python");
v.addAll(list);
在上述代码中,使用add()方法添加了两个字符串元素,使用addElement()方法添加了一个整数元素,使用addAll()方法添加了一个ArrayList集合中的元素。
5. 从Vector中获取元素
从Vector中获取元素也非常简单,可以使用get()方法直接获取元素,也可以使用elementAt()、firstElement()、lastElement()等方法获取第一个、最后一个或指定位置的元素。
Vector<String> v = new Vector<String>();
v.add("Java");
v.add("Python");
v.add("C++");
//使用get()方法获取元素
String s1 = v.get(0); //获取第一个元素
String s2 = v.get(1); //获取第二个元素
//使用elementAt()方法获取元素
String s3 = v.elementAt(2); //获取第三个元素
//使用firstElement()方法获取第一个元素
String s4 = v.firstElement();
//使用lastElement()方法获取最后一个元素
String s5 = v.lastElement();
在上述代码中,使用get()方法分别获取了第一个元素和第二个元素,使用elementAt()方法获取了第三个元素,使用firstElement()方法获取了第一个元素,使用lastElement()方法获取了最后一个元素。
6. Vector的常用方法
Vector类提供了很多常用的方法,如增加、删除、查找、排序等操作。
增加方法:
public boolean add(E e)
:将指定的元素添加到此向量的末尾。public void add(int index, E element)
:将指定的元素插入到此向量中的指定位置。public boolean addAll(Collection<? extends E> c)
:将指定集合中的所有元素追加到此向量的末尾。public boolean addAll(int index, Collection<? extends E> c)
:将指定集合中的所有元素插入到此向量中的指定位置。
删除方法:
public void clear()
:从此向量中删除所有元素。public boolean remove(Object o)
:从此向量中删除第一次出现的指定元素(如果存在)。public E remove(int index)
:删除此向量中指定位置处的元素。public boolean removeAll(Collection<?> c)
:从此向量中删除那些在指定集合中也出现的所有元素。protected void removeRange(int fromIndex, int toIndex)
:从此列表中删除所有索引为fromIndex(包括)和toIndex(不包括)之间的元素。
查找方法:
public E get(int index)
:返回此向量中指定位置处的元素。public int indexOf(Object o)
:返回此向量中第一次出现指定元素的索引,如果此向量不包含该元素,则返回-1。public int lastIndexOf(Object o)
:返回此向量中最后一次出现指定元素的索引,如果此向量不包含该元素,则返回-1。
排序方法:
void sort(Comparator<? super E> c) //使用指定的比较器对Vector进行排序
void sort() //按照元素的自然顺序对Vector进行排序
7. Vector的优缺点
Vector的优点:
- 可以动态增长或减少容量。
- 可以存储任意类型的对象。
- 支持多线程并发操作,可以使用Enumeration或Iterator等方法遍历Vector集合。
Vector的缺点:
- 当需要插入或删除元素时,需要移动其他元素,效率较低。
- Vector中所有元素都是Object类型,获取元素时需要进行强制类型转换。
- Vector在多线程并发操作时会存在同步问题,需要使用同步关键字或线程安全的集合类代替。
8. 测试用例
8.1 创建一个空的Vector对象
测试代码如下:
package com.example.demo.javaTest.listTest;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import java.util.Vector;
@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
public class VectorTest {
//创建Vector
@Test
public void testCreateEmptyVector() {
//创建一个空的Vector对象
Vector<Object> v1 = new Vector<Object>();
System.out.println("v1的容量:" + v1.capacity());
}
}
测试用例执行截图如下:
8.2 创建一个指定容量的Vector对象
测试代码如下:
//创建一个指定容量的Vector对象
@Test
public void testCreateVector() {
Vector<Object> v2 = new Vector<Object>(5);
System.out.println("v2的容量:" + v2.capacity());
}
测试用例执行截图如下:
8.3 向Vector中添加元素
测试代码如下:
//向Vector中添加元素
@Test
public void testVector() {
Vector<Object> v1 = new Vector<Object>();
v1.add("Hello");
v1.add("World");
v1.addElement(new Integer(100));
System.out.println("v1的元素:" + v1);
}
测试用例执行截图如下:
8.4 从Vector中获取元素
测试代码如下:
//从Vector中获取元素
@Test
public void testGetVector() {
Vector<Object> v1 = new Vector<Object>();
v1.add("Hello");
v1.add("World");
v1.addElement(new Integer(100));
System.out.println("v1的元素:" + v1);
System.out.println("v1的第一个元素:" + v1.firstElement()); //Hello
System.out.println("v1的最后一个元素:" + v1.lastElement()); //100
System.out.println("v1的第二个元素:" + v1.get(1)); //World
System.out.println("v1中第一个匹配'Hello'的元素的索引:" + v1.indexOf("Hello")); //0
}
测试用例执行截图如下:
8.5 删除Vector中的元素
测试代码如下:
//删除Vector中的元素
@Test
public void testRemoveVector() {
Vector<Object> v1 = new Vector<Object>();
v1.add("Hello");
v1.add("World");
v1.addElement(new Integer(100));
System.out.println("v1的元素:" + v1);
v1.remove("World");
System.out.println("删除'World'后v1的元素:" + v1); //[Hello, 100]
}
测试用例执行截图如下:
在上述测试用例中,创建了三个不同容量的Vector对象,向v1中添加了三个元素后,使用Vector的常用方法获取了元素、查找元素、删除元素等操作。
9. 全文小结
Vector是Java集合框架中的一种动态数组,可以根据需要进行扩容或减少容量。Vector类实现了List接口,能够存储任意类型的对象。本文介绍了Vector的概念、创建Vector对象、向Vector中添加元素、从Vector中获取元素、Vector的常用方法、Vector的优缺点、测试用例等内容。在开发中需要注意Vector的缺点和多线程并发操作时的同步问题。
最后
大家如果觉得看了本文有帮助的话,麻烦给个三连(点赞、分享、转发)支持一下哈。
转载自:https://juejin.cn/post/7277799192965677056