📌  相关文章
📜  Java中的LinkedBlockingDeque drainTo() 方法示例(1)

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

Java中的LinkedBlockingDeque drainTo() 方法示例

简介

LinkedBlockingDeque是Java中的一个阻塞双向队列数据结构,即支持在队列头部和尾部插入和删除元素,并且在元素达到队列容量时将阻塞插入操作或删除操作的线程。LinkedBlockingDeque中的drainTo()方法可以将队列中的元素转移到另一个集合中。

方法签名
public int drainTo(Collection<? super E> c)
参数说明
  • c:另一个集合,元素从队列中转移过去。
返回值

该方法返回一个整数,表示队列中转移的元素数量。

示例代码
import java.util.concurrent.LinkedBlockingDeque;
import java.util.ArrayList;

public class Main {
    public static void main(String[] args) {
        LinkedBlockingDeque<String> deque = new LinkedBlockingDeque<>();
        deque.add("A");
        deque.add("B");
        deque.add("C");

        ArrayList<String> list = new ArrayList<>();
        int count = deque.drainTo(list);
        System.out.println("队列中转移的元素数量为:" + count);
        System.out.println("另一个集合中的元素为:" + list);
        System.out.println("队列中剩余元素为:" + deque);
    }
}
示例结果
队列中转移的元素数量为:3
另一个集合中的元素为:[A, B, C]
队列中剩余元素为:[]
示例说明

在上面的示例代码中,我们创建了一个LinkedBlockingDeque对象,并向其中添加了三个元素。然后,我们创建了一个ArrayList对象来存储从队列中转移出来的元素,使用drainTo()方法将队列中的所有元素转移到ArrayList对象中。最后,我们打印出转移元素的数量,ArrayList对象中的元素和队列中剩余的元素。