当前位置:  技术问答>java相关

我又来给分了,清说说Vector的用法和特点,最好有例子。

    来源: 互联网  发布时间:2015-03-06

    本文导语:  以前看过,没用就忘了。现在来这儿再学习学习。 | 转载 Vector 类提供了实现可增长数组的功能,随着更多元素加入其中,数组变的更大。在删除一些元素之后,数组变小。 Vector 有三个构...

以前看过,没用就忘了。现在来这儿再学习学习。

|
转载


Vector 类提供了实现可增长数组的功能,随着更多元素加入其中,数组变的更大。在删除一些元素之后,数组变小。
Vector 有三个构造函数,
public Vector(int initialCapacity,int capacityIncrement)
         public Vector(int initialCapacity)
         public Vector()
  Vector 运行时创建一个初始的存储容量initialCapacity,存储容量是以capacityIncrement 变量定义的增量增长。初始的存储容量和capacityIncrement 可以在Vector 的构造函数中定义。第二个构造函数只创建初始存储容量。第三个构造函数既不指定初始的存储容量也不指定capacityIncrement。
  Vector 类提供的访问方法支持类似数组运算和与Vector 大小相关的运算。类似数组的运算允许向量中增加,删除和插入元素。它们也允许测试矢量的内容和检索指定的元素,与大小相关的运算允许判定字节大小和矢量中元素不数目。
  现针对经常用到的对向量增,删,插功能举例描述:
addElement(Object obj)   
  把组件加到向量尾部,同时大小加1,向量容量比以前大1 
 
insertElementAt(Object obj, int index)   
  把组件加到所定索引处,此后的内容向后移动1 个单位
 
setElementAt(Object obj, int index) 
  把组件加到所定索引处,此处的内容被代替。
  removeElement(Object obj) 把向量中含有本组件内容移走。
  removeAllElements() 把向量中所有组件移走,向量大小为0。
  例如:
 
     import java.lang.System;
     import java.util.Vector;
     import java.util.Emumeration;
     public class Avector{
                 public static void main(String args[])
                    {
0.   Vector v=new Vector(); 
1. v.addElement("one"); 
2. addElement("two");
3. v.addElement("three"); 
4. v.insertElementAt("zero",0);
5. v.insertElementAt("oop",3);
6. v.setElementAt("three",3);
7. v.setElementAt("four",4);
8. v.removeAllElements();
}
}
Vector中的变化情况:
1. one   2. one   3. one   4. zero   5.zero   6. zero  7. zero 
8. 
          two   two  one   one  one   one
             three  two   two  two   two
                 three  oop  three  three
                     three   three  four
 
  另外,Vector 在参数传递中发挥着举足轻重的作用。
  在Applet 中有一块画布(Canvas) 和一个(Panel), 而Panel 中放着用户要输入的信息,根据这些信息把参数传递到canvas 中,这时在Java 中用一个接口(Interface), 而在接口中需用一个Vector 去传递这些参数。另外,在一个类向另一个类参数传递就可以用这种方法。
  例如:
 
import java.util.Vector
interface codeselect{
           Vector codeselect=new Vector();
             }
显示数学信息
Vector(0)存入学生编号
Vector(1)存入学科
 
  在Panel 中当用户在TextField 和Choice 中选择自己所要求的内容,程序中
  通过事件响应把值传到向量Vector 中。
  假若在Panel 类中:
 
public void  codepanel extends Panel{
  public void init()
  { 
    **.
TextField  s=new TextField();
Choice c=new Choice();
c. addItem("语文");
c.addItem("数学");
c.addItem("政治");
add(s);
add (c);
**
}
 
public boolean handleEvent(Event event){
if(event.id==Event.ACTION_EVENT){
if(event.target.instanceof Textfield)
{
coderesult.setElementAt(s.getText(),0);
}
else if(event.target intanceof Choice)
{
coderesult.setElementAt(new Integer(c.getSelectedIndex()),1);
}
}
}
}
 
 
 
  这时,向量中已经存入学生编号和学科索引号(0 为语文,1 为数学,2 为政治)。
  而在Canvas 中得到此值,
 
public class codecanvas extends Canvas{
 
public void code{
            }
public void paint{
 
String str;
int t;
str=(String)coderesult.elementAt(0);
t=(new Integer(codeselect.elementAt(1).toString())).intValue();
if(t==0)
{
显示语文信息
}
else if(t==1)
{
显示数学信息
 
}
else if(t==2)
{
显示政治信息
}
}
} 

|
与数组相似,但能够自动进行收缩和扩张。
Vector vct = new Vector();
Vector vct = new Vector(int initialCapacity);//zhid指定容量
Vector vct = new Vector(int initialCapacity,int capacityIncrement);//指定容量和增幅。
其实很简单的,可以看看JDK的API,写得很不错(jdk1.3)
 

|
假如创建一个矢量,Vector vec=new vector(3,10);那么vec的初始容量就是3个object.如果以后又增加了一个,超出了初始容量,它就会自动重新分配自己,并相应调整自己大小。第一次重新分配的结果容量就是13。

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • java,C++,C,Pascal四种语言的区别,特点,大家来说说,发言有分。
  • 博客 iis7站长之家
  • 大家说说,这个东西能值多少钱?
  • Mastering EJB的中文版出来了,大家说说好不好?
  • 大家说说,你们用的jdbc driver for sqlserver是哪儿的!
  • 大家说说,微软的jdbc是不是很烂,好多方法不支持
  • 说说你常用的web 报表工具,参与有分
  • 谁能说说Linux的类库啊?(谢谢了,^_^)
  • 大家说说精通unix/linux操作系统的话待遇、前景怎么样?
  • 大家来说说 郁闷至极
  • oops实现,高手进来说说
  • 为什么这么多空间说说根目录空间不足啊
  • 百度运维,大家说说前景怎么样?
  • 说说windows线程和linux线程的区别?
  • 说说你使用的操作系统
  • 谁能说说telnet的原理?
  • 请高手说说JAVA BEAN!!谢谢(我初学,呵呵,领教了。)
  • java能做短信息发送软件吗?接口是什么?谁能明确说说这方面知识
  • 有谁说说jsp中的变量与函数定义
  • 谁能说说什么是j2ee connnector?
  • 大家说说在 Linux 下什么浏览器最好?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3