📅  最后修改于: 2023-12-03 15:16:19.971000             🧑  作者: Mango
AbstractSequentialList
是 List
接口的一个实现类,实现了 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()
方法的集合是自身,那么该方法并不会引发任何更改。