vector v;//你的vector
TApple t;//你的条件TApple
for (int i=0;i<v.size();i++)
{
    if(((TApple)v.get(i)).equals(t))
    { 
        v.remove(i);
    }
}
你要在你的TApple中写一个equals方法判断两个TApple是否相等

解决方案 »

  1.   

    老兄,这样写是有问题的,
    当vector中有几个不相临的符合条件的TApple时就会 出错
      

  2.   

    Vector v = new Vector();
        v.add("a");
        v.add("b");
        v.add("a");
        v.add("b");
        v.add("a");    int flag = 0;
        for (int i=0;i<v.size();i++){
          if(((String)v.get(i)).equals("a")){
            v.remove(v.get(i));
            i--;
          }
        }
        System.out.println(v.toString[]);
      

  3.   

    nod to macoff,关键是Vector的大小会变化,所以需要i--
      

  4.   

    比较好的办法是从后面往前头找:
    vector v;//你的vector
    TApple t;//你的条件TApple
    int cnt=v.size();
    for (int i=cnt-1;i>=0;i--)
    {
        if(((TApple)v.get(i)).equals(t))
        { 
            v.remove(i);
        }
    }
      

  5.   

    vec = new Vector();
            for(int i=0;i<6;i++)
            {
                vec.add("aa"+i);
            }
            vec.add("aa0");
            vec.add("aa0");
            vec.insertElementAt("aa0",1);
            vec.insertElementAt("aa0",1);
     macoff(天堂)老兄,上面的这个做法,你的算法就会出问题
      

  6.   

    up 被加上点本程序已经调试过了!!import java.util.Vector;
    public class V 
    {
       Vector v = new Vector();
       V()
       {
     v.add("a");
        v.add("b");
        v.add("a");
        v.add("c");
        v.add("d");
        int flag = 0;
        int j=v.size();
        
        for (int i=0;i<j;i++){
          if(((String)v.get(i)).equals("a")){
            v.remove(v.get(i));
            
            j--;
            System.out.println(v.elementAt(i));      }
       }}
    public static void main(String args[])
    {
    V v=new V();    
        }
    }
      

  7.   

    这个算法是正确的,不过有些罗嗦 public class Untitled1
    {
        private Vector vec;
        public Untitled1()
        {
            vec = new Vector();
            for(int i=0;i<6;i++)
            {
                vec.add("aa"+i);
            }
            vec.add("aa0");
            vec.add("aa0");
            vec.insertElementAt("aa0",1);
            vec.insertElementAt("aa0",1);
        }
        public void calc()
        {
            int i=0;
            int size = vec.size();
            do
            {
                int j=i;
                for(;j<size;j++)
                {
                    String aa = (String)vec.elementAt(j);
                    if(aa.equals("aa0"))
                    {
                        vec.removeElement(aa);
                        break;
                    }
                }
                i = j;
                size = vec.size();
                System.out.println(j);
            }while(i<vec.size());
            for(i=0;i<size;i++)
            {
                String aa = (String)vec.elementAt(i);
                System.out.println(aa);
            }
        }
          public static void main(String[] args)
        {
            Untitled1 untitled11 = new Untitled1();
            untitled11.calc2();
        }
    }
      

  8.   

    int j = vec.size();
            for(int i=0;i<j;i++)
            {
                    String aa = (String)vec.elementAt(i);
                    if(aa.equals("aa0"))
                    {
                        vec.remove(i);
                        i--;
                        j--;
                    }
            }
      

  9.   

    import java.util.Vector;
    public class V 
    {
       Vector v = new Vector();
       V()
       {
     v.add("a");
        v.add("b"); 
        v.insertElementAt("a0",1);
        int j=v.size();
        
        for (int i=0;i<j;i++){
         System.out.println(v.get(i));
        
          if(((String)v.get(i)).equals("a")){    
            v.remove(v.get(i));      
            j--;      
            System.out.println("a 被删除了");      }
       }
       System.out.println("删除后的数据是:");
       for(int k=0;k<j;k++)
            {
             System.out.println(v.elementAt(k));
            
            }
       }
    public static void main(String args[])
    {
    V v=new V();    
        }
    }   
      

  10.   

    DrunkenLion(一片绿叶) 
    vec = new Vector();
            for(int i=0;i<6;i++)
            {
                vec.add("aa"+i);
            }
            vec.add("aa0");
            vec.add("aa0");
            vec.insertElementAt("aa0",1);
            vec.insertElementAt("aa0",1);
    这样的情况我试了,也没有问题啊
    这是处理前后的内容
    [aa0, aa0, aa0, aa1, aa2, aa3, aa4, aa5, aa0, aa0]
    [aa1, aa2, aa3, aa4, aa5]
      

  11.   

    macoff(天堂) :
    你的算法中每次都要取vec.size(),影响效率啊,
      

  12.   

    这个很好办啊
      int count = v.size();
      for (int i=0;i<count;i++){
        if(((String)v.get(i)).equals("a")){
          v.remove(v.get(i));
          i--;
          count--;
        }
      }