向量
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);
}
}