黑马程序员技术交流社区

标题: 删除集合中元素 [打印本页]

作者: 陈帅雷    时间: 2011-12-21 23:22
标题: 删除集合中元素
本帖最后由 陈帅雷 于 2011-12-22 09:25 编辑

import java.util.Vector;

public class test_Vector_Remove_All {

        public static void main(String[] args) {
                Vector<Integer> v = new Vector<Integer>();
                v.add(new Integer(11));
                v.add(new Integer(22));
                v.add(new Integer(33));
                v.add(new Integer(44));
                v.add(new Integer(55));
               
                for(int i=0; i<v.size();i++){
                        v.remove(i);                                
                }
                for(int i=0; i<v.size();i++){
                        System.out.println(v.get(i));
                }
        }

}

发现第一次没删除完,输出结果居然是22 44 ?
作者: 周敏2011nc    时间: 2011-12-22 08:16
remove(int index) :它是 移除此向量中指定位置的元素。并将所有后续元素左移(将其索引减 1)。返回此向量中移除的元素。
解决办法 :
    for(int i=0; i<v.size;){
          v.remove(0)     
      }
为什么这里不写i++;因为每执行一次remove(int index)方法时,v.size就会减小1.
作者: 张绍成    时间: 2011-12-23 21:07
Vector : 是可变长集合。当你上删除了前面的以后,后面的就会向前移动,所以当你删除了第一个那么第二个将移动的到第一个的位置,以此类推!所以会输出 22 44 。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2