Vector<Object> vect = updateNode.getTimeTreeObjects();
        Collection<Object> nonMilestoneObjects = new ArrayList<Object>();
        Iterator<Object> it = vect.iterator();
        Object obj;
        while (it.hasNext()) {
            obj = it.next();
            if (!(obj instanceof GuiTimeTreeMilestone)) {
                nonMilestoneObjects.add(obj);
            }
        }
        vect.removeAllElements();
        it = nonMilestoneObjects.iterator();
        while (it.hasNext()) {
            vect.addElement(it.next());
        }

解决方案 »

  1.   

    Vector<Object> vect = updateNode.getTimeTreeObjects();
      //Collection<Object> nonMilestoneObjects = new ArrayList<Object>();
      Iterator<Object> it = vect.iterator();
      Object obj;
      while (it.hasNext()) {
      obj = it.next();
      if (obj instanceof GuiTimeTreeMilestone) {
        }
      }
      vect.removeAllElements();
      it = nonMilestoneObjects.iterator();
      while (it.hasNext()) {
      vect.addElement(it.next());
      }
      

  2.   

    // **** 上面我发的是手误 ,而且不能编辑Vector<Object> vect = updateNode.getTimeTreeObjects();
      //Collection<Object> nonMilestoneObjects = new ArrayList<Object>();
      Iterator<Object> it = vect.iterator();
      Object obj;
      while (it.hasNext()) {
      obj = it.next();
      if (obj instanceof GuiTimeTreeMilestone) { // 此处符合你程序中要求的逻辑
         it.remove(); // 直接删除
      }
      }
      //vect.removeAllElements();
     // it = nonMilestoneObjects.iterator();
      //while (it.hasNext()) {
     // vect.addElement(it.next());
     // }