向量

向量

Vector 类的常用方法

public void add(Object o)  将对象 o 添加到向量的末尾.

public void add(int index Object o)  将对象 o 插入到向量的指定位置. public void addElements(Object o)    将对象 o 添加到向量的末尾. public boolean contains(Object o)    判断对象 o 是否为向量的成员. public Object elementAt(int index) 获取指定位置处的成员.

public Object 9et(int index)    获取此向量指定位置处的成员. public Object firstElement()    获取此向量的第一个成员. public Object lastElement() 获取此向量的最后一个成员.

public int indexOf(Obkect o)    获取对象 o 在此向量中首次出现的位置.

public int indexOf(Obkect o,int index) 从指定位置查找对象 o 在此向量中首次现的位置.

public int lastIndexOf(Object o)    获取对象 o 在此向量中最后出现的位置.

public  int  lastIndexOf(Object  o,int  index) 对象 o 在此向量位置 index 之前最后出现的位置.

public Object remove(int index) 从此向量中删除指定位置处的成员,并返回这个成员.

public void removeAllElements()    删除向量的所有成员.

public boolean removeElement(Object o)    删除第一次出现的成员 o.

public boolean removeElementAt(int index) 删除指定位置处的成员.

public void set(int index,Object o)    把指定位置处的成员用 o 替换掉.

public void setElementAt(Object o,int index) 把指定位置处的成员用 o 替换掉.

public Enumeration elements()    获取一个枚举对象.

在下面的例子 12 中将几个不同的对象添加到向量.

例子 12

import java.util.*;

class Example26_12

{public static void main(String args[])

{ Vector vector=new Vector(); Date date=new Date(); vector.add(new Integer(1));vector.add(new Float(3.45f)); vector.add(new Double(7.75));vector.add(new Boolean(true)); vector.add(date);

System.out.println(vector.size()); Integer number1=(Integer)vector.get(0);

System.out.println("向量的第 1 个元素 "+number1.intValue()); Float number2=(Float)vector.get(1);

System.out.println("向量的第 2 个元素 "+number2.floatValue()); Double number3=(Double)vector.get(2);

System.out.println("向量的第 3 个元素 "+number3.doubleValue()); Boolean number4=(Boolean)vector.get(3); System.out.println("向量的第 4 个元素 "+number4.booleanValue()); date=(Date)vector.lastElement();

System.out.println("向量的第 5 个元素 "+date.toString());

if(vector.contains(date)) System.out.println("ok");

}

}

下面的例子 13 使用向量技术改进了十八章 18.4 中用鼠标自由作画的程序,在下面的例 子中无论鼠标拖动的怎样快,所画出的点都是很连续的.每当拖动鼠标时,我们把获得的鼠标 位置坐标存入一个向量,然后依次把向量的点连成直线.

例子 13

import java.applet.*;

import java.awt.*;import java.util.*;

import java.awt.event.*;

class Point

{int x,y;

 

Point(int x,int y)

{this.x=x;this.y=y;

}

}

public class Example26_13 extends Applet

implements MouseMotionListener,MouseListener

{ int x=-1,y=-1;

Vector v=null;int n=1;

public void init()

{ setBackground(Color.green); addMouseMotionListener(this);  addMouseListener(this); v=new Vector();

}

public void paint(Graphics g)

{if(x!=-1&&y!=-1)

{  n=v.size();

for(int i=0;i<n-1;i++)

{Point p1=(Point)v.elementAt(i); Point p2=(Point)v.elementAt(i+1); g.drawLine(p1.x,p1.y,p2.x,p2.y);

}

}

}

public void mouseDragged(MouseEvent e)

{ x=(int)e.getX();y=(int)e.getY(); Point p=new Point(x,y); v.addElement(p);

repaint();

}

public void mouseMoved(MouseEvent e)

{}

public void mousePressed(MouseEvent e){}

public void mouseReleased(MouseEvent e)

{v.removeAllElements();}

public void mouseEntered(MouseEvent e){} public void mouseExited(MouseEvent e){} public void mouseClicked(MouseEvent e){} public void update(Graphics g)

{ paint(g);

}

}