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

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

Java中的 AbstractSequentialList retainAll() 方法与示例

简介

AbstractSequentialListList 接口的一个实现类,实现了 List 的基本功能。其中 retainAll() 方法是 AbstractSequentialList 类中的一个重载方法,用于保留 List 中只包含指定集合中元素的部分。

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

Collection<?> c:要保留的元素所在的集合。

方法返回值

boolean:如果此 List 由于调用而发生更改,则返回 true

示例代码
import java.util.*;

public class Main {
    public static void main(String[] args) {
        // 创建一个 LinkedList 对象
        LinkedList<String> list = new LinkedList<String>();

        // 往 List 中添加元素
        list.add("Java");
        list.add("C++");
        list.add("Python");
        list.add("Ruby");

        // 创建一个 HashSet 对象
        HashSet<String> set = new HashSet<String>();

        // 向 HashSet 中添加元素
        set.add("C++");
        set.add("Python");

        // 保留 List 中只包含 HashSet 中的元素
        boolean result = list.retainAll(set);

        // 输出结果
        System.out.println(result);  // true
        System.out.println(list);    // [C++, Python]
    }
}
解释示例代码

上面的示例代码中,我们首先创建了一个 LinkedList 对象,然后往其中添加了一些元素。接着,我们再创建了一个 HashSet 对象,并向其中添加了一些元素。然后,我们调用 retainAll() 方法,将 List 中只包含 HashSet 中的元素。最后,我们输出调用 retainAll() 方法后的 List 和返回值。

方法使用场景

当我们需要从一个 List 中移除不属于另一个集合的元素时,可以使用 retainAll() 方法。

注意事项
  • 调用 retainAll() 方法后,原始 List 中的元素顺序将保持不变。
  • 如果传递给 retainAll() 方法的集合是自身,那么该方法并不会引发任何更改。