黑马程序员技术交流社区

标题: 这程序运行后怎么把List集合全删了 [打印本页]

作者: xiaogougou    时间: 2015-4-3 15:47
标题: 这程序运行后怎么把List集合全删了
package com.itheima;
import java.util.*;
public class Test01
{
        public static void main(String[] args)
        {
                ArrayList<String> aList=new ArrayList<String>();
                aList.add("dsafsr");
                aList.add("abc");
                aList.add("fof");
                aList.add("abcder");
                System.out.println(aList.toString());
                ArrayList<String> delList=new ArrayList<String>();
                Iterator<String> it=aList.iterator();
                while(it.hasNext())
                {
                        String s=it.next();
                        if(s.equals("abc"));
                                delList.add(s);
                }
                aList.removeAll(delList);
                System.out.println(aList.toString());
        }
}
打印结果:
[dsafsr, abc, fof, abcder]
[]

只想删除“abc”,但全被删除了。。。



作者: 艺多不压身丶    时间: 2015-4-3 15:54
  1. package pack;
  2. import java.util.*;
  3. class test{
  4.         public static void main(String[] args){
  5.                 ArrayList<String>al=new ArrayList<String>();
  6.                 al.add("dsafsr");al.add("abc");
  7.         al.add("fof");al.add("abcder");
  8.                 ListIterator<String>lit=al.listIterator();
  9.                 while(lit.hasNext()){
  10.                         String s=lit.next();
  11.                         if("abc".equals(s))
  12.                                 lit.remove();
  13.                 }
  14.                 System.out.println(al);
  15.         }
  16. }
复制代码
  1. package pack;
  2. import java.util.*;
  3. class test{
  4.         public static void main(String[] args){
  5.                 ArrayList<String>al=new ArrayList<String>();
  6.                 al.add("dsafsr");al.add("abc");
  7.         al.add("fof");al.add("abcder");
  8.                 for(int x=0; x<al.size(); x++){
  9.                         if("abc".equals(al.get(x)))
  10.                                 al.remove(x);
  11.                 }
  12.                 System.out.println(al);
  13.         }
  14. }
复制代码

作者: Searching    时间: 2015-4-3 16:17
if(s.equals("abc"));这行,多了一个分号,这样后面一句就不在if的控制范围内,每个循环都往delList里add了一个元素
作者: zhqw_heima    时间: 2015-4-3 16:22
大哥,你写的是removeAll
作者: xiaogougou    时间: 2015-4-3 17:49
Searching 发表于 2015-4-3 16:17
if(s.equals("abc"));这行,多了一个分号,这样后面一句就不在if的控制范围内,每个循环都往delList里add了 ...

太谢谢了!我怎么就没发现。。。




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