📅  最后修改于: 2023-12-03 15:31:53.303000             🧑  作者: Mango
LinkedTransferQueue是Java集合框架中提供的一种非常有用的线程安全队列。它提供了很多方法,其中之一就是peek()方法。本文将介绍Java中的LinkedTransferQueue和peek()方法。
LinkedTransferQueue是Java集合框架中提供的一种线程安全的队列。它扩展了ConcurrentLinkedQueue,增加了一些方法,如transfer和tryTransfer,使得其更加灵活。
LinkedTransferQueue的优点在于:
LinkedTransferQueue的peek()方法用于获取队头的元素,但是不会将其从队列中移除。如果队列为空则返回null。
下面是peek()方法的源代码:
public E peek() {
Node<E> t = (firstWaiter == lastWaiter) ? null :
firstDataNode();
return (t == null || t.item == null) ? null : t.item;
}
下面是一个使用peek()方法的例子:
import java.util.concurrent.LinkedTransferQueue;
import java.util.concurrent.TransferQueue;
public class LinkedTransferQueueExample {
public static void main(String[] args) {
TransferQueue<String> queue = new LinkedTransferQueue<>();
queue.add("a");
queue.add("b");
queue.add("c");
System.out.println("Peek element: " + queue.peek()); //输出:Peek element: a
System.out.println("Size of queue: " + queue.size()); //输出:Size of queue: 3
}
}
LinkedTransferQueue是Java集合框架中提供的一种非常有用的线程安全队列,而peek()方法则是获取队头元素的方法。它具有很多优点,包括线程安全、高效以及扩展性强。如果需要使用线程安全的队列,则可以考虑使用LinkedTransferQueue。