一、前言
前面我们说到有关于API的Random类、Scanner类、String类、System类和Calendar类,接下来我们将要学习与存储空间有关的Vector类。
- 本次学习的任务要求:完成一个java application应用程序,通过接收用户通过键盘输入的文本,把每次回车输入的字符串动态加入到Vector类对象中,并显示此Vector类对象中存储的字符串。
二、分析学习
这里的Vector类是可变长存储空间,而数组是定长的存储空间,一旦确定其长度将不可改变。但是当我们若要创建一个聊天室对象,将聊天室里面的人存储起来时,我们因为不知道聊天室的具体人员而会陷入存储空间不足或浪费的两难之地,因此我们需要引入一个能自动变长的存储空间对象,即集合类中的Vector类。
1.Vector类介绍
打开API文档,搜索Vector类,查看相关的信息如下:

我们可以看出,Vector类是位于util包下。Vector 类可以实现可增长的对象数组。与数组一样,它包含可以使用整数索引进行访问的组件。但是,Vector 的大小可以根据需要增大或缩小,以适应创建 Vector 后进行添加或移除项的操作。
Vector类可以存储不同类型的数据,仅限复合型,在1.5版本后可以存储基本类型数据(如int、double类型,但专业性讲是转换成对象类存储了),我们在使用时需要调取这一类的包。
2. Vector类方法
接下来我们来看 Vector类的常用方法,如下:
1)构造方法

重点提到其中的一个构造方法: Vector();
我们在使用的时候要创建一个类对象存储区:Vector v = new Vector();然后应用下面的方法进行操作。
2)添加方法

addElement(E obj)方法能将指定的元素添加到此向量的末尾,将其大小增加 1,这里添加的元素都是变为对象进而处理的。

我们可以使用insertElementAt(E obj, int index)向指定位置插入一个元素。

我们还可以用此add(E e)方法向指定位置添加元素。
除此之外我们还可能会用到删改的方法,如下。
3)删改方法
-
setElementAt(E obj, int index):将指定位置的值改为另外的元素。

-
removeElementAt(int index):删除指定位置的组件或元素。

4)查找方法
除了一些对Vector类的重要操作之外,这里还有一些有关查找的方法:
elementAt(int index):返回指定位置索引的元素或组件。contains(Object o):如果此向量包含指定的元素,则返回 true。indexOf(Object o, int index):从指定位置开始,此向量中第一次出现的指定元素的索引,从 index 处正向搜索,如果未找到该元素,则返回 -1。lastIndexOf(Object o, int index):从指定位置开始,返回此向量中最后一次出现的指定元素的索引,从 index 处逆向搜索,如果未找到该元素,则返回 -1。
三、实践
为了更好的理解和应用Vector类,我们使用其中的一些方法来构造一个小的 java application应用程序 ,通过键盘输入文本/字符串动态,加入到Vector类对象中并显示。
- 详细代码如下:
/* 项目名称:Training_Du
* 创建时间:2019年1月9日
* 创建者:Administrator
* 创建地点:kmust
*/
import java.util.Vector;//导入Vector类
import java.util.Scanner;//导入Scanner类
public class VectorDemo{//创建VectorDemo类
public static void main(String[] args){//主方法
/*Vector类:可以实现可增长的对象数组。大小可以根据需要增大或缩小,以适应添加或移除项的操作。
*构造方法:
* Vector():创建一个空向量。
*添加方法:
* addElement(E obj)方法:将指定的元素添加到此向量的末尾,向量大小加1
* insertElementAt(E obj, int index)方法:向指定位置插入一个元素,原成分往后顺延。
* add(E e)方法:向指定位置添加元素。
*删改方法:
* setElementAt(E obj, int index)方法:将指定位置的值改为另外的元素。
* removeElementAt(int index)方法:删除指定位置的组件或元素。
*查找方法:
* elementAt(int index)方法:返回指定位置索引的元素或组件。
* contains(Object o)方法:如果此向量包含指定的元素,则返回 true。
* indexOf(Object o, int index)方法:从指定位置开始,正向搜索向量中第一次出现的指定元素索引,若未找到则返回 -1。
* lastIndexOf(Object o, int index)方法:从指定位置开始,逆向搜索向量中第一次出现的指定元素索引,若未找到则返回 -1。
*/
Scanner scan = new Scanner(System.in); // 从键盘接收数据
Vector<String> vec = new Vector<String>();//创建一个动态数组
//String s1,s2;
while(true) {
System.out.println("\n请输入内容:\n");//输出提示内容
String str=scan.nextLine();//获取键盘输入的下一行赋值给str字符串
if(!str.equals("quit"))//判断键盘输入
{
if(str.equals("add"))//添加
{
System.out.println("\n请输入需要添加的位置:\n");//提取添加位置
String s=scan.nextLine();//获取键盘输入的下一行赋值给s1字符串
int s1 = Integer.parseInt(s);//将s转化为string类型
System.out.println("\n请输入需要添加的内容:\n");//提取添加内容
String s2=scan.nextLine();//获取键盘输入的下一行赋值给s2字符串
vec.insertElementAt(s2,s1);//执行添加方法
}
else if(str.equals("delete"))//删除
{
System.out.println("\n请输入需要删除的位置:\n");//提取删除位置
String s =scan.nextLine();//获取键盘输入的下一行赋值给s1字符串
int s1 = Integer.parseInt(s);//将s转化为string类型
vec.removeElementAt(s1);//执行删除方法
}
else if(str.equals("change"))//修改
{
System.out.println("\n请输入需要修改的位置:\n");//提取修改位置
String s =scan.nextLine();//获取键盘输入的下一行赋值给s1字符串
int s1 = Integer.parseInt(s);//将s转化为string类型
System.out.println("\n请输入需要修改的内容:\n");//提取修改内容
String s2=scan.nextLine();//获取键盘输入的下一行赋值给s2字符串
vec.setElementAt(s2,s1);//执行修改方法
}
else if(str.equals("search"))//搜索
{
System.out.println("\n请输入需要搜索的位置:\n");//提取搜索位置
String s =scan.nextLine();//获取键盘输入的下一行赋值给s1字符串
int s1 = Integer.parseInt(s);//将s转化为string类型
System.out.println("\n请输入需要搜索的内容:\n");//提取搜索内容
String s2=scan.nextLine();//获取键盘输入的下一行赋值给s2字符串
//vec.indexOf(s2,s1);//从指定位置开始,正向搜索向量中第一次出现的指定元素索引,若未找到则返回 -1。
System.out.print("\n从第"+s1+"个位置查找字符"+s2+"第一次出现的位置 :" );//输出搜索信息
System.out.println(vec.indexOf(s2,s1));//输出搜索位置信息
}
else //直接输入时,添加字符串到动态数组
{
vec.add(str);//将从键盘输入的字符串str加入动态数组vec
}
}
else //输入quit退出
{
break; //跳出循环
}
System.out.print("\n文本内容:\n");//输出文本内容
//依次提取数组中的字符串打印到显示台
for(int i=0;i<vec.size();i++)//遍历数组空间
{
System.out.print(vec.get(i));//输出动态数组大小
}
System.out.println("\n总共输入了"+vec.size()+"字\n");//vec.size()计算数组元素个数
}
}
}
-
运行结果如下:

-
注意事项与总结:
首先我们需要认识到,数组的初始化和赋值以及字符串的一些方法都是十分重要的,而且本次所学习的Vector类是一个可变长的数组类型,在有些编程时可以使得更加灵活。
另外,我们还需要认识到,Vector类可以存储不同类型的数据,仅限复合型,在1.5版本后可以存储基本类型数据(如int、double类型,但专业性讲是转换成对象类存储了,如Integer能在 int 类型和 String 类型之间互相转换,还提供了处理 int 类型时非常有用的其他一些常量和方法),我们在使用时需要调取这一类的包。
最后,关于JAVA API的使用,希望各位博友在学习中发掘更多的知识,在学习中养成良好的查阅习惯,这样才能打下坚实的基础,在实际中也能避免出现错误,逐渐形成一个能独立编写程序的能力。大家一起努力吧!
本文深入探讨Java中Vector类的特性和应用,包括构造方法、添加、删改及查找等核心方法。并通过一个示例程序,展示如何通过键盘输入动态添加字符串到Vector对象,并进行显示,帮助读者掌握Vector类的使用。
—通过键盘输入文本字符串动态,加入到Vector类对象中并显示(Vector类)&spm=1001.2101.3001.5002&articleId=86021938&d=1&t=3&u=623d3c1ab3c14c6fa785f2b521f34130)
410

被折叠的 条评论
为什么被折叠?



