代码如下: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~

解决方案 »

  1.   

    vector是一个包含指定集合中的元素的向量,这些元素按其集合的迭代器返回元素的顺序排列,当你用add向里面追加元素的时候,它的容量会增加。
      

  2.   

    怎莫会覆盖呢
    加一段调试代码,不就知道了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
    *********Elemenets*********
    index is:0   element is:haha
    index is:1   element is:element1
    index is:2   element is:element2
    index is:3   element is:element3
    index is:4   element is:element4
    index is:5   element is:element5
    index is:6   element is:element6
    index is:7   element is:element7
    index is:8   element is:element8
    index is:9   element is:element9
    index is:10   element is:element10
    index is:11   element is:element11
    index is:12   element is:element12
    index is:13   element is:element13
    index is:14   element is:element14
    index is:15   element is:element15
    index is:16   element is:element16
    index is:17   element is:element17
    index is:18   element is:element18
    index is:19   element is:element19
    index is:20   element is:element20楼主清楚了吗
      

  3.   

    运行结果是:
    第一个元素                :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*/
      

  4.   

    运行的结果是第八个元素是element7、element8在Vector中的位置:8。haha作为第一个元素是插入到vector中,不是覆盖。
    见api:
    public void add(int index,
                    E element)在此向量的指定位置插入指定的元素。将当前位于该位置的元素(如果有)及所有后续元素右移(将其索引加 1)。