比如 List list2 = {1,2,5,6,7,155}
 List list1 = {1,2,5,6,7,155,500,299,53,52}
 Iterator i=list2.iterator();
 while(i.hasNext()){
              list1.remove(i.next(););
     System.out.println("yunxingdaozheli="+list1.size());
}
           我只知道remove方法,但是却删不掉。还有个removeall(list2),不过我也是没有清除掉。现在不知道如何下手了,请大侠们帮帮忙,指条明路!万分感激啊。

解决方案 »

  1.   

    这样就可以清除了吧。
    你把list里的东西输出来看看System.out.println("yunxingdaozheli="+list1.size()); 这样输出的只是size的大小
      

  2.   

    两种方法都可以
    无论list1 是否全包含list2
      

  3.   

    remove(list.get(数字));
    不知道对不对,瞎猜的
      

  4.   

    首先谢谢大家,我循环输出List1的时候还是那么多,并没有减少,所以我个人认为我这样的方法出现问题,期待回应!
      

  5.   

    用这个方法:boolean removeAll(Collection<?> c)  
      

  6.   

    你这样貌似删不去,这2个list没什么关系,期待高手
    xuexi
      

  7.   

    个人感觉,既然List1中包含List2中的所有元素,肯定是清除掉的,期待高手的帮助,急~~在线等
      

  8.   


    List list2 = {1,2,5,6,7,155} 
    List list1 = {1,2,5,6,7,155,500,299,53,52} 
    list1.removeAll(list2);
      

  9.   


             public static void main(String[] args) {
     List list2 = new ArrayList();
     
     List list1 = new ArrayList();
     list2.add("1");
     list2.add("2");
     list2.add("4");
     
     list1.add("1");
     list1.add("2");
     list1.add("3");
     list1.add("5");
     list1.add("6");
     list1.add("7");
     Iterator i=list2.iterator(); 
     while(i.hasNext()){ 
         list1.remove(i.next()); 
         System.out.println("yunxingdaozheli="+list1.size()); 
     } 
     
     System.out.println("-----分割线-----");
     List list3 = new ArrayList();
     
     List list4 = new ArrayList();
     list3.add("1");
     list3.add("2");
     list3.add("4");
     
     list4.add("1");
     list4.add("2");
     list4.add("3");
     list4.add("5");
     list4.add("6");
     list4.add("7");
     
     list4.removeAll(list3);
     System.out.println(list4.size());
     
    }
      

  10.   

    楼上的方法的确可以,这个我也试过。
    我把我在项目中出现的问题贴出来,大家帮我找找看,看具体是哪里出现错误:
    List list2=new ArrayList(); 
    while(rs.next()){
     ub.setQxId(qxId);
     ub.setQxName(rs.getString("qxName"));
     ub.setBelong(rs.getInt("belong"));
    list2.add(ub)
    }
    List list1=new ArrayList();
     while(rs.next()){
     UserBean ub=new UserBean();
    ub.setQxId(rs.getInt("qxId"));
    ub.setQxName(rs.getString("qxName"));
    ub.setBelong(rs.getInt("belong"));
    list1.add(ub);
        }
    在actionServlet中
    list1.remove(list2);
    request.setAttribute("list", list1);
    或者
    Iterator i=list2.iterator(); 
    while(i.hasNext()){ 
        list1.remove(i.next();); 
        System.out.println("yunxingdaozheli="+list1.size()); 

    request.setAttribute("list", list1);
      

  11.   

    大侠们,帮忙看一下,我实在是找不出来问题所在,上个回复中list1.removeall(list2)写错。
    不能清除的原因,应该是list1中不包含list2中的元素,但是我封装的都是ub,而且ub中存储的元素和顺序都一样的。在线等待回应!