黑马程序员技术交流社区

标题: 关于集合 [打印本页]

作者: 郭娇珍    时间: 2013-1-3 20:15
标题: 关于集合
  1. import java.util.*;
  2. class Demo
  3. {
  4. public static void main(String[] args)
  5. {
  6. ArrayList<String> list =new ArrayList<String>();
  7. list.add("java");
  8. list.add("java");
  9. list.add("java");
  10. list.add("java1");
  11. list.add("java1");
  12. list.add("java3");
  13. list.removeAll("java");


  14. Iterator <String> it=list.iterator();
  15. while(it.hasNext())
  16. {
  17. String s=it.next();

  18. System.out.println(s);
  19. }

  20. }
  21. }
复制代码
各位大侠帮忙看下哪里错了,为什么
作者: 肖志锋    时间: 2013-1-3 20:22
为什么不看错误提示呢?你第13行的removedAll方法用错了,参数不对,参数应该是集合。
用方法前,多查查API吧
作者: 刘文超    时间: 2013-1-3 20:36
本帖最后由 刘文超 于 2013-1-3 20:48 编辑

楼上正解, removeAll(Collection<?> col)方法用来从该集合中移除同时包含在指定集合col中的对象,
与retainAll()方法正好相反。
返回值为boolean型,如果存在符合移除条件的对象则返回true,否则返回false。

给你一个小例子便于理解:
  1. public class test {
  2.   
  3.      /**
  4.       * @param args
  5.       */
  6.      public static void main(String[] args) {
  7.          // TODO Auto-generated method stub
  8.        List lista = new ArrayList();
  9.        List listb = new ArrayList();
  10.        lista.add("1");
  11.        lista.add("2");
  12.        lista.add("3");
  13.        lista.add("4");
  14.        lista.add("5");
  15.        lista.add("6");
  16.        lista.add("7");
  17.        lista.add("9");
  18.        lista.add("8");
  19.        lista.add("0");
  20.        lista.add("a");
  21.        lista.add("b");
  22.        System.out.println(lista);
  23.        listb.add("1");
  24.        listb.add("b");
  25.        lista.removeAll(listb);
  26.        System.out.println(lista);
  27.      }
  28. }
  29. //这样的输出结果是:
  30. //[1, 2, 3, 4, 5, 6, 7, 9, 8, 0, a, b]
  31. //[2, 3, 4, 5, 6, 7, 9, 8, 0, a]
复制代码

作者: 何竹冬    时间: 2013-1-3 21:16
你好
removeAll删除与指定集合中相同的元素public boolean removeAll(Collection<?> c)
所以参数应该是一个集合,如果你要删除所有的java字符串。
  1. import java.util.*;
  2. class ReflectTest
  3. {
  4. public static void main(String[] args)
  5. {
  6. ArrayList<String> list =new ArrayList<String>();
  7. List<String> alist=new ArrayList<String>();
  8. alist.add("java");

  9. list.add("java");
  10. list.add("java");
  11. list.add("java");
  12. list.add("java1");
  13. list.add("java1");
  14. list.add("java3");
  15. list.removeAll(alist);


  16. Iterator <String> it=list.iterator();
  17. while(it.hasNext())
  18. {
  19. String s=it.next();

  20. System.out.println(s);
  21. }

  22. }
  23. }
复制代码

作者: 黄锦成    时间: 2013-1-3 21:48
removeAll方法要传入一个集合
import java.util.*;
class Demo
{
public static void main(String[] args)
{
ArrayList<String> list =new ArrayList<String>();
list.add("java");
list.add("java");
list.add("java");
list.add("java1");
list.add("java1");
list.add("java3");

System.out.println(list.removeAll(list));


Iterator <String> it=list.iterator();
while(it.hasNext())
{
String s=it.next();

System.out.println(s);
}

}
}
作者: 李云飞    时间: 2013-1-3 22:31
13.list.removeAll("java");

你的错误就在这句代码,removeAll()中的参数应该是集合名而不是对象名。




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