世界网址·海外网站
Ctrl+D收藏世界网址

Vector

Vector

Vectortechnical illustration vector illustration technical illustrations stylistic vector illustrator

http://www.techvector.com

TECHVECTOR | Design + Illustration。
Vector简介

TECHVECTOR | Design + Illustration

Java.util.Vector提供了向量(Vector)类以实现类似动态数组的功能。在Java语言中是没有指针概念的,但如果能正确灵活地使用指针又确实可以大大提高程序的质量,比如在C、C++中所谓“动态数组”一般都由指针来实现。为了弥补这点缺陷,Java提供了丰富的类库来方便编程者使用,Vector类便是其中之一。事实上,灵活使用数组也可完成向量类的功能,但向量类中提供的大量方法大大方便了用户的使用。

相对于ArrayList来说,Vector线程是安全的,也就是说是同步的

创建了一个向量类的对象后,可以往其中随意地插入不同的类的对象,既不需顾及类型也不需预先选定向量的容量,并可方便地进行查找。对于预先不知或不愿预先定义数组大小,并需频繁进行查找、插入和删除工作的情况,可以考虑使用向量类。向量类提供了三种构造方法:

public vector()

public vector(int initialcapacity,int capacityIncrement)

public vector(int initialcapacity)

使用*种方法,系统会自动对向量对象进行管理。若使用后两种方法,则系统将根据参数initialcapacity设定向量对象的容量(即向量对象可存储数据的大小),当真正存放的数据个数超过容量时,系统会扩充向量对象的存储容量。

参数capacityIncrement给定了每次扩充的扩充值。当capacityIncrement为0时,则每次扩充一倍。利用这个功能可以优化存储。在Vector类中提供了各种方法方便用户使用:

(1)public final synchronized void addElement(Object obj)

将obj插入向量的尾部。obj可以是任何类的对象。对同一个向量对象,可在其中插入不同类的对象。但插入的应是对象而不是数值,所以插入数值时要注意将数值转换成相应的对象。

例 要插入一个整数1时,不要直接调用v1.addElement(1),正确的方法为:

Vector v1=new Vector();

Integer integer1=new Integer(1);

v1.addElement(integer1);

(2)public final synchronized void setElementAt(object obj,int index)

将index处的对象设成obj,原来的对象将被复盖。

(3)public final synchronized void insertElementAt(Object obj,int index)

在index指定的位置插入obj,原来对象以及此后的对象依次往后顺延。

(1)public final synchronized void removeElement(Object obj)

从向量中删除obj。若有多个存在,则从向量头开始试,删除找到的*与obj相同的向量成员。

(2)public final synchronized void removeAllElement()

删除向量中所有的对象。

(3)public final synchronized void removeElementlAt(int index)

删除index所指的地方的对象。

(1)public final int indexOf(Object obj)

从向量头开始搜索obj,返回所遇到的*obj对应的下标,若不存在此obj,返回-1。

(2)public final synchronized int indexOf(Object obj,int index)

从index所表示的下标处开始搜索obj。

(3)public final int lastIndexOf(Object obj)

从向量尾部开始逆向搜索obj。

(4)public final synchronized int lastIndexOf(Object obj,int index)

从index所表示的下标处由尾至头逆向搜索obj。

(5)public final synchronized Object firstElement()

获取向量对象中的*obj。

(6)public final synchronized Object lastelement()

获取向量对象中的较后一个obj。

了解了向量的最基本的方法后,我们来看一下例子VectorApp.java。

例 VectorApp.java

import java.util.Vector;

import java.lang.*;

//这一句不应该要,但原文如此

import java.util.Enumeration;

public class VectorApp

public static void main(String[] args)

Vector v1=new Vector();

Integer integer1=new Integer(1);

v1.addElement("one");

//加入的为字符串对象

v1.addElement(integer1);

v1.addElement(integer1);

//加入的为Integer的对象

v1.addElement("two");

v1.addElement(new Integer(2));

v1.addElement(integer1);

v1.addElement(integer1);

System.out.println("The vector v1 is:\n\t"+v1);

//将v1转换成字符串并打印

v1.insertElementAt("three",2);

v1.insertElementAt(new Float(3.9),3);

System.out.println("The vector v1(used method insertElementAt())is:\n\t "+v1);

//往指定位置插入新的对象,指定位置后的对象依次往后顺延

v1.setElementAt("four",2);

System.out.println("The vector v1(used method setElementAt())is:\n\t "+v1);

//将指定位置的对象设置为新的对象

v1.removeElement(integer1);

//从向量对象v1中删除对象integer1由于

存在多个integer1所以从头开始

找,删除找到的*integer1

Enumeration enum=v1.elements();

System.out.print("The vector v1(used method removeElement())is:");

while(enum.hasMoreElements())

System.out.print(enum.nextElement()+" ");

System.out.println();

//使用枚举类(Enumeration)的方法来获取向量对象的每个元素

System.out.println("The position of object 1(top-to-bottom):"

+ v1.indexOf(integer1));

System.out.println("The position of object 1(tottom-to-top):"

+v1.lastIndexOf(integer1));

//按不同的方向查找对象integer1所处的位置

v1.setSize(4);

System.out.println("The new vector(resized the vector)is:"+v1);

//重新设置v1的大小,多余的元素被行弃

E:\java01>java VectorApp

The vector v1 is:

[one,1,1,two,2,1,1]

The vector v1(used method insertElementAt())is:

[one,1,three,3.9,1,two,2,1,1]

The vector v1(used method setElementAt()) is:

[one,1,four,3.9,1,two,2,1,1]

The vector v1(used method removeElement())is:

one four 3.9 1 two 2 1 1

The position of object 1(top-to-bottom):3

The position of object 1(tottom-to-top):7

The new vector(resized the vector)is:

[one,four,3.9,1]

E:\java01>

从例1中运行的结果中可以清楚地了解上面各种方法的作用,另外还有几点需解释。

(1)类Vector定义了方法

public final int size()

此方法用于获取向量元素的个数。它的返回值是向是中实际存在的元素个数,而非向量容量。可以调用方法capactly()来获取容量值。

public final synchronized void setsize(int newsize)

此方法用来定义向量大小。若向量对象现有成员个数已超过了newsize的值,则超过部分的多余元素会丢失。

(2)程序中定义了Enumeration类的一个对象

Enumeration是java.util中的一个接口类,在Enumeration中封装了有关枚举数据集合的方法。

在Enumeration中提供了方法hawMoreElement()来判断集合中是否还有其它元素和方法nextElement()来获取下一个元素。利用这两个方法可以依次获得集合中元素。

Vector中提供方法:

public final synchronized Enumeration elements()

此方法将向量对象对应到一个枚举类型。java.util包中的其它类中也大都有这类方法,以便于用户获取对应的枚举类型。

vector 是同一种类型的对象的集合,每个对象都有一个对应的整数索引值 。

和 string 对象一样,标准库将负责管理与存储元素相关的内存。我们把 vector称为容器,是因为它可以包含其他对象,能够存放任意类型的 动态数组,增加和压缩数据。一个容器中的所有对象都必须是同一种类型的 。

vector 是一个类模板(class template)。使用模板可以编写一个类定义或函数定义,而用于多个不同的数据类型。因此,我们可以定义保存 string 对象的 vector,或保存 int 值的 vector,又或是保存自定义的类类型对象(如Sales_items 对象)的 vector。vector 不是一种数据类型,而只是一个类模板,可用来定义任意多种数据类型。vector 类型的每一种都指定了其保存元素的类型 。

为了可以使用vector,必须在你的头文件中包含下面的代码:

#include <vector>

vector属于 std命名 域的,因此需要通过命名限定,如下完成你的代码:

using std::vector;

vector<int> vInts;

或者连在一起,使用全名:

std::vector<int> vInts;

建议在代码量不大,并且使用的 命名空间不多的情况下,使用全局的命名域方式: using names

Vector是行业信息设计艺术行业领先的网站,Vector于2020年4月被世界网址收录于目录下,网站创办者是:Vector,Vector网站网址是:http://www.techvector.com,世界网址综合分析Vector网站的价值和可信度、百度搜索排名、Alexa世界排名、百度权重等基础信息,为您能准确评估Vector网站价值做参考!

标签:technical illustration vector illustration technical illustrations stylistic vector illustrator

官方信息
  • Facebook
  • 微博
  • YouTube
  • 微博
  • Twitter
Vector热门资讯

Vector (00)

世界网站币安下载欧意交易所app下载币安官方最新APP下载欧意下载