retainAll()方法

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);
        
    }
}

你可能感兴趣的:(retainAll()方法)