A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 12300123 中级黑马   /  2015-4-12 11:28  /  1130 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. import java.util.*;
  2. class CollectionDemo
  3. {
  4.         public static void main(String[] args)
  5.         {
  6.                 Collection c1=new ArrayList();
  7.                 c1.add("abc1");
  8.                 c1.add("abc2");
  9.                 c1.add("abc3");
  10.                 c1.add("abc4");



  11.                 Collection c2=new ArrayList();
  12.                 //c2.add("abc1");
  13.                 c2.add("abc2");
  14.                 c2.add("abc3");
  15.                 c2.add("abc4");
  16.                 c2.add("abc5");
  17.                 c2.add("abc6");
  18.                 c2.add("abc7");
  19.                 c2.add("abc8");

  20.                
  21.                 c1.retainAll(c2);
  22.                
  23.                 System.out.println(        c1);
  24.                 System.out.println(        c1.retainAll(c2));
  25.         }
  26. }
复制代码
如上所示,是我今天上午写的一段代码,用于测试retainAll()方法的返回值,编译结果显示,无论c1的元素有没有发生变化,返回值都是false,这不对啊。没有变化返回值是false,变化了的话返回值应该是true才对。我用的jre1.7,不会是bug吧。谁来测试看看有没有同样的问题,真奇怪!

2 个回复

倒序浏览
  1. public static void main(String[] args) {

  2.                 Collection<String> c1 = new ArrayList<String>();
  3.                 c1.add("abc1");
  4.                 c1.add("abc2");
  5.                 c1.add("abc3");
  6.                 c1.add("abc4");

  7.                 Collection<String> c2 = new ArrayList<String>();
  8.                 // c2.add("abc1");
  9.                 c2.add("abc2");
  10.                 c2.add("abc3");
  11.                 c2.add("abc4");
  12.                 c2.add("abc5");
  13.                 c2.add("abc6");
  14.                 c2.add("abc7");
  15.                 c2.add("abc8");

  16.                 c1.retainAll(c2); // 这里已经踢出了c2与c1相同的元素,所以下一次c1就不会变化了,
  17.                                                         // 你把这行代码注释看看结果是不是true

  18.                 System.out.println(c1);
  19.                 System.out.println(c1.retainAll(c2));
  20.         }
复制代码
回复 使用道具 举报

:(,是的,测试过代码后那行忘记删掉了,:L
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马