📅  最后修改于: 2023-12-03 14:42:43.671000             🧑  作者: Mango
ArrayDeque
removeAll()
方法ArrayDeque
是 Java 中的一个双端队列,它实现了 Deque
接口,允许在队列的两端进行添加、删除和获取元素的操作。
removeAll()
方法是 ArrayDeque
类中的一个方法,用于从队列中删除指定集合中存在的所有元素。
boolean removeAll(Collection<?> c)
c
:一个要从队列中删除的集合。
如果队列中的元素由于该方法的调用而发生了更改,则返回 true
;否则返回 false
。
removeAll()
方法会比较队列和指定集合中的所有元素,如果都是引用类型,需要确保元素的重写了 equals(Object obj)
方法,否则可能会出现删除不完全情况。
在删除元素时,pollFirst()
和 pollLast()
方法会被用来从队列中删除元素。
import java.util.ArrayDeque;
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
// 创建一个 ArrayDeque 对象
ArrayDeque<Integer> deque = new ArrayDeque<>();
// 添加元素到队列中
deque.add(1);
deque.add(2);
deque.add(3);
deque.add(4);
deque.add(5);
// 创建一个 ArrayList 对象
ArrayList<Integer> list = new ArrayList<>();
list.add(2);
list.add(4);
// 删除元素
boolean result = deque.removeAll(list);
System.out.println("删除结果:" + result);
System.out.println("队列中的元素:" + deque);
}
}
运行结果如下:
删除结果:true
队列中的元素:[1, 3, 5]
在这个示例中,我们创建了一个 ArrayDeque
队列,并用 add()
方法添加了5个元素。然后,我们创建了一个 ArrayList
集合,并将元素2和4添加到其中。接下来,我们调用了 removeAll()
方法,并将 list
作为参数传入。
removeAll()
方法删除了队列中存在的集合中的元素,并将该方法的返回值输出到控制台。最后,我们通过 System.out.println()
将队列中剩余的元素输出到控制台。
本示例中,removeAll()
方法返回了 true
,队列中的元素已经成功删除,只剩下1,3和5。