黑马程序员____Vector类

----------------------android培训java培训、期待与您交流! ----------------------

    从数学上讲,向量(Vector)就是数字的一个有穷序列,从几何上看,我们可以把二位向量(x,y)看成平面中的一个点,而三维向量(x,y,z)表示三维空间中的一个点。在线性代数中,经常可见到n个元素的向量(x1,x2,…xn),并使用下标来表示某个元素。

         Java中,除以下两点外,向量与数组完全相同。

  • 一个向量是类java.util.Vector的实例。
  • 一个向量的长度可以改变。

    在Java中,Vector类几乎是重写的,它定义在java.util包中,类定义为。

 

public class Vector extends AbstractList implements List
{
	public boolean add(Object object);
	public boolean add(int index,Object object);
	public boolean addAll(Collection collection);
	public boolean addAll(int index,Collection collection);
	public void addElement(Objcet object);
	public void clear();
	public Object clone();
	public boolean contains\\(Object object);
	public boolean containsAll(Collection collection);
	public void copyInto(Object[] objects);
	public Object elementAt(int index);
	public boolean equals(Object object);
	public Object firstElement();
	public Object get(int index);
	public int hashCode();
	public int indexOf(Object object);
	public int indexOf(Object object,int index);
	public void insertElementAt(Object object,int index);
	public boolean isEmpty();
	public Object lastElement();
	public int lastIndexOf(Object object);
	public int lastIndexOF(Object object,int index);
	public Object remove(int index);
	public boolean remove(Object object);
	public boolean removeAll(Collection collection);
	public void removeAllElements();
	public boolean removeElement(Object object);
	public void removeElementAt(int index);
	public boolean retainAll(Collection collection);
	public Object set(int index,Object object);
	public void setElementAt(Object object,int index):
	public int size();
	public List subList(int start,int stop);
	public Object[] toArray();
	public Object[] toArray(Object[] objects);
	public String toString();
	public Vector();
	public Vector(Collection collection);

}

         其中,add方法用于将新元素插入到向量之中,add(Object)addElement(Object)方法具有相同的作用,区别在于add(object)有返回值,操作成功时,返回true,否则返回fasle。当没有指明要插入的新元素的位置时,缺省插入到向量的末端。

         方法clear()使得向量为空,从而使向量的尺寸为0。注意一个空向量与一个空引用是不一样的,一个空向量仍是一个向量,向量对象依然存在。

         方法clone()产生该向量的一个完整的复制品,因而向量所包含的对象也得到克隆。

         方法contains用于确定某个对西那个是否是该向量的成员。

         方法copyInto将向量中的元素拷贝到一个指定的数组。

         方法elementAt()get()与数组中的下标算子类似,返回给定索引位置的向量元素。

         方法equals()进行向量对象的相等性测试,当两对象均为向量对象,且两向量中的对应元素均相等时,将返回真值。

         方法fristElement()lastElement()分别返回向量中的第一个和最后一个元素。

         方法hashCode()为该向量对象返回一个标识数。

         方法indexof实用顺序查找算法在向量中查找某个给定的对象,当在向量中找到该对象时,就返回对象在向量中的位置索引,否则返回-1。当该方法带两个参数时,就从指定的索引位置往后查找。

         方法InsertElementAt()在指定位置将对象插入到向量,并使得前面的元素往前挪动。

         方法lastIndexOf方法与indexof方法的不同之处在于该方法中的顺序查找算法的查找方向正好相反。

         方法remove从向量中去掉一道多个元素,并使右边得剩余元素往左挪动,该方法的效果与InsertElementAt()方法正好相反。应当注意,用于插入元素的方法只有一个,但有6remove方法,方法remove(index)removeElementAt(index)除在返回值方面不同外,操作效果是一样的,前者在操作成功时返回去掉的对象(否则为null),而后者在操作成功时返回真值,没有成功时为假。

         方法set(index,object)setElementAt(object,index)均用给定的对象去替代index所标识的对象,这两个方法除了前者返回被替代的对象(操作不成功时返回null)外,具有相同的操作效果。

         方法subList()返回一个list对象,该对象中的元素为向量中从starttop-1top-start个元素。

         方法toArray()返回一个Object[]数组,该数组中所包含的元素与向量中一致。不带参数的toArray()方法产生一个数组,并返回该数组,它的尺寸与向量相同。而带Object参数的toArray()方法在数组尺寸小于向量尺寸时与不带参数的方法是一样的,但当数组尺寸大于向量时,将向量中的元素拷入到数组的前部,并使数组中的其余元素为空。

         方法toString()返回一个字符串,用于表示向量的内容。

例1 测试Java.util.Vector

import java.util.*;
public class Ex0209
{
	private static Vector v = new Vector();
	private static Vector w = new Vector();
	public static void main(String[] args)
	{
		String [] cities = {"Austin","Boston","Fresno","Toledo"};
		v.addAll(Arrays.asList(cities));
		System.out.println("v="+v);
		v.add("Tuceson");
		System.out.println("v="+v);
		w = (Vector)v.clone();
		System.out.println("w = "+w);
		System.out.println("w.equals(v)="+w.equals(v));
        v.set(3,"Ottowa");
		System.out.println("v="+v);
		System.out.println("w="+w);
		System.out.println("w.equals(v)="+w.equals(v));
		v.insertElementAt("London",3);
		System.out.println("v="+v);
		System.out.println("w="+w);
		System.out.println("w.equals(v)"+w.equals(v));
		w.removeElementAt(1);
		w.removeElementAt(3);
		w.remove("Fresno");
		System.out.println("w="+w);
		v.addAll(5,w);
		System.out.println("v="+v);
		System.out.println("v.indexOf(\"Austin\")="+v.indexOf("Austin"));
		System.out.println("v.indexOf(\"Austin\",2)="+v.indexOf("Austin",2));
		System.out.println("v.indexOf(\"Dublin\")="+v.indexOf("Dublin"));

	}
}

        该程序的输出为:

 

        数组cities用于生成向量v,通过方法Arrays.asList()调用使得该数组成为List()对象,并调用带Collection参数(Listcollection的子类)的Vector构造器产生向量vSystem.out.println()方法通过调用向量的toString()方法来对向量内容进行输出。

       通过调用v.add(“Tucson”)将该字符串添加到向量末尾,从而使向量尺寸加1。而方法v.clone()返回向量v的克隆,但作为一个Object类型,因此我们再用类型转换符(Vector)使之转换为Vector类型,并将其赋值给w

       方法equals()表明vw是相等的,而调用v.set(3,”Ottawa”)将改变引用v所标识的对象,而不会改变w所标识的对象,从而表明这两个向量确实是独立的,而且相等。

         w中去掉3个元素后调用v.addAll(5,w)w中从第五个元素开始的所有元素的拷贝插入到v中,最后,IndexOf()方法用于查找v中的元素。


 


 

---------------------- android培训java培训、期待与您交流! ----------------------

详细请查看:http://edu.csdn.net/heima


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值