retainAll()方法
2017-08-12 本文已影响0人
xiaoliman
1.保留指定collection1中包含的所有元素
2.retainAll方法用于从collection中移除未包含在指定collection1中的所有元素。
3.语法 boolean retainAll(Collection<?> c)
4.返回值:如果集合对象由于调用retainAll方法而发生更改(删除数据),则返回 true。
5.参数:c为包含在列表中保留元素的collection对象。
示例 本示例使用List接口的实现类ArrayList,初始化一个列表对象list,并向该列表中添加3个元素,然后再初始化一个列表对象list1,并向该列表中添加两个与list列表中相同的元素,最后调用retainAll方法从列表list中移除不包含在列表list1中的元素,并输出执行结果。
6.然后再看另外一个实例代码
package com.qf.demo3;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
public class Test2 {
public static void main(String[] args) {
Collection collection = new ArrayList();
collection.add(4);
collection.add(2);
collection.add(8);
Collection collection2 = new ArrayList();
collection2.add(2);
collection2.add("abc");
collection2.add('a');
// 在调用者中 留下交集的部分
boolean flag = collection.retainAll(collection2);
System.out.println(flag);// 如果因为取交集删除元素了 true 没有删除元素 false
System.out.println(collection);
// Integer charcacter string
// 遍历集合
// 1
// toArray()
/*Object[] objects = collection2.toArray();
for (int i = 0; i < objects.length; i++) {
System.out.println(objects[i]);
}
// 遍历数组 还可以 集合
for (Object object : objects) {
System.out.println(object);
}
*/
// 2 增强for循环
for (Object object : collection2) {// 一遍遍历一边删除数据 抛异常
// ConcurrentModificationException 并发修改异常
collection2.remove(object);
System.out.println(object);
}
//3 获得迭代器
Iterator iterator = collection2.iterator();
// hasNext 判断是否有下一个元素
// next 获取下一个元素 , 将指针向下移动一位
while(iterator.hasNext()){
Object object = iterator.next();
iterator.remove();// 删除元素
System.out.println(object);
}
System.out.println(collection2);
}
}