📌  相关文章
📜  Java中的 AbstractCollection retainAll() 方法及示例(1)

📅  最后修改于: 2023-12-03 15:01:50.227000             🧑  作者: Mango

Java中的 AbstractCollection retainAll() 方法及示例

简介

retainAll()AbstractCollection 中的方法,用于保留集合中所有包含在指定集合中的元素,同时删除所有不包含在指定集合中的元素。这个方法返回一个 boolean 值,表示当集合被修改时是否被改变。

方法签名
public boolean retainAll(Collection<?> c)

参数:

  • c:指定的集合

返回值:

  • 若集合被修改,则返回 true;若集合未被修改,则返回 false。
示例
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;

public class Main {
    public static void main(String[] args) {
        // 创建一个字符串集合
        Collection<String> strings = new ArrayList<String>(Arrays.asList("A", "B", "C", "D", "E"));

        // 创建一个字符串集合用于保留元素
        Collection<String> retainStrings = new ArrayList<String>(Arrays.asList("B", "D", "F"));

        // 保留元素
        boolean result = strings.retainAll(retainStrings);

        // 输出结果
        System.out.println("保留结果:" + result); // 输出 true
        System.out.println("保留后的集合:" + strings); // 输出 [B, D]
    }
}

以上代码中,我们创建了一个字符串集合 strings,其中包含了 5 个元素。然后我们又创建了一个字符串集合 retainStrings,其中包含了 3 个元素,但只有 2 个元素("B" 和 "D")在 strings 集合中出现过。

最后,我们调用 strings.retainAll(retainStrings) 方法保留了 strings 集合中与 retainStrings 集合中共有的元素,并将结果赋值给了 result 变量。因为 strings 集合确实被修改了,所以 result 的值为 true。

最后,我们输出了 strings 集合。可以看到,strings 集合中只剩下了共有的 2 个元素,即 "B" 和 "D"。