日期:2014-05-20  浏览次数:20843 次

vector类的基础问题
代码如下:

import java.util.*;

class VectorDemo

{

 public static void main(String args[])

 {
   
  Vector vector=new Vector(100);

  for(int i=1;i<=20;i++)

  vector.add("element"+i);

  vector.add(0,"haha");

  System.out.println("第一个元素 :"+vector.firstElement());

  System.out.println("第8个元素 :"+vector.get(7));  

  System.out.println("element15在Vector中的位置:"+vector.indexOf("element15"));

 }

 运行的结果是第八个元素是element7,而element15在vector中的位置是15,这是为什么呢?还有haha作为第一个元素插入是

不是覆盖了原来的第一个元素啊,还是每个元素往后挪一位?谢谢各位高手赐教啊,谢谢啊!!O(∩_∩)O~

------解决方案--------------------
vector是一个包含指定集合中的元素的向量,这些元素按其集合的迭代器返回元素的顺序排列,当你用add向里面追加元素的时候,它的容量会增加。
------解决方案--------------------
怎莫会覆盖呢
加一段调试代码,不就知道了
Java code

import java.util.*; 

class VectorDemo 

{ 

    public static void main(String args[]) 

    { 
  
        Vector vector=new Vector(100); 

        for(int i=1;i <=20;i++) 

            vector.add("element"+i); 

        vector.add(0,"haha"); 

        System.out.println("第一个元素                :"+vector.firstElement()); 

        System.out.println("第8个元素                :"+vector.get(7));  

        System.out.println("element15在Vector中的位置:"+vector.indexOf("element15"));
        
        System.out.println("*********Elemenets*********");
        for(int i=0;i<vector.size();i++){
            System.out.println("index is:"+i+"   "+"element is:"+vector.get(i));
        }

    } 
}

------解决方案--------------------
运行结果是:
第一个元素 :haha
第8个元素 :element7
element15在Vector中的位置:15


for(int i=1;i <=20;i++) 

vector.add("element"+i); /*将"element1"~"element20"依次存入Vector中,索引0~19,即"element1"对应的索引是0,依次类推*/
vector.add(0,"haha"); /*将"hah"插入0索引处(第一个元素),而"element1"~"element20"的索引依次加1,即"element1"~"element20"的索引变为了1~20.*/


所以
 System.out.println("第一个元素 :"+vector.firstElement()); /*vector.firstElement()); 返回第一个元素即索引为0的插入的元素"hah"*/

System.out.println("第8个元素 :"+vector.get(7)); /*返回索引为7的元素,即element7*/

System.out.println("element15在Vector中的位置:"+vector.indexOf("element15")); /*返回"element15"的索引,即15*/