集合框架_Collection集合的高级功能测试

package cn.itcast_01;

import java.util.ArrayList;
import java.util.Collection;

/*
 * boolean addAll(Collection c):添加一个集合的元素。
 * boolean removeAll(Collection c):移除一个集合的元素。(是一个还是所有)
 * boolean containsAll(Collection c):判断集合中是否包含指定的集合元素。(是一个还是所有)
 * boolean retainAll(Collection c):两个集合都有的元素?思考元素去哪了,返回boolean又是什么意思呢?
 */
public class CollectionDemo2 {
	public static void main(String[] args) {
		// 创建集合1
		Collection c1 = new ArrayList();
		c1.add("abc1");
		c1.add("abc2");
		c1.add("abc3");
		c1.add("abc4");

		// 创建集合2
		Collection c2 = new ArrayList();
		// c2.add("abc4");
		c2.add("abc5");
		c2.add("abc6");
		c2.add("abc7");
		c2.add("abc8");

		// boolean addAll(Collection c):添加一个集合的元素。
		// System.out.println("addAll:"+c1.addAll(c2));

		// boolean removeAll(Collection c):移除一个集合的元素。(是一个还是所有)
		// 只要有一个元素被移除了,就返回true
		// System.out.println("removeAll:" + c1.removeAll(c2));

		// boolean containsAll(Collection c):判断集合中是否包含指定的集合元素。(是一个还是所有)
		// 只有包含所有的元素,才叫包含
		// System.out.println("containsAll:" + c1.containsAll(c2));

		// boolean retainAll(Collection c):两个集合都有的元素?思考元素去哪了,返回boolean又是什么意思呢?
		// 假设有两个集合A,B
		// A对B做交集,最终的结果保存在A中,B不变
		// 返回值表示的是A是否发生过改变
		/*
		 * 交集 一般地,由所有属于A且属于B的元素所组成的集合,叫做A与B的交集. 记作 (读作"A交B")
		 * 设A={4,5,6,8},B={3,5,7,8}
		 * 则 A交B= {5,8} (公共部分)
		 */
		System.out.println("retainAll:" + c1.retainAll(c2));

		System.out.println("c1:" + c1);
		System.out.println("c2:" + c2);
	}
}



将相同的元素保留,剔除多余的


仅保留此collection中那些也包含在指定collection的元素(可选操作)。
换句话说,移除此collection中未包含在指定collection中的所有元素。
 
此实现在此collection上进行迭代,依次检查该迭代器返回的每个元素,以查看其是否包含在指定的collection中。如果不是,则使用迭代器的remove方法将其从此collection中移除。

其次,返回值的意思是这样的,

1
   
如果此 collection 由于调用而发生更改,则返回 true

再次,你这个c1 和c2 里面元素的内容 其实是一样的, 这样一来,调用 c1.retainAll(c2) 时候,发现,不需要从c1中去除不在c2中的元素,因此这个c1不需要发生更改,那么返回值就是是false,也就是说,这个方法的返回值是标识c1 有没有改变,而不是这个方法是否执行正常或者成功


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值