Java中的ArrayBlockingQueue toArray()方法
ArrayBlockingQueue的toArray()方法: ArrayBlockingQueue类的toArray()方法用于创建一个包含与此ArrayBlockingQueue相同元素的数组,以适当的顺序。基本上,它将所有元素从ArrayBlockingQueue复制到一个新数组中。该方法充当数组和集合之间的桥梁。
语法:
public Object[] toArray()
返回值: 该方法返回包含此队列中所有元素的数组。下面的程序说明了ArrayBlockingQueue类的toArray()方法: 程序1:
//演示如何应用ArrayBlockingQueue类的toArray()方法的程序。
import java.util.concurrent.ArrayBlockingQueue;
public class GFG {
public static void main(String[] args)
{
//定义ArrayBlockingQueue的容量
int capacity = 5;
//创建ArrayBlockingQueue对象
ArrayBlockingQueue<Integer> queue = new ArrayBlockingQueue<Integer>(capacity);
//添加5个元素到ArrayBlockingQueue中
queue.offer(423);
queue.offer(422);
queue.offer(421);
queue.offer(420);
queue.offer(424);
//通过调用toArray()方法创建数组
Object[] array = queue.toArray();
//打印队列
System.out.println("队列是: " + queue);
//打印数组元素
System.out.println("通过toArray()方法创建的数组是:");
for (Object i : array) {
System.out.println(i);
}
}
}
输出:
队列是:[423, 422, 421, 420, 424]
通过toArray()方法创建的数组是:
423
422
421
420
424
程序2:
//演示如何应用ArrayBlockingQueue类的toArray()方法的程序。
import java.util.concurrent.ArrayBlockingQueue;
public class GFG {
public static void main(String[] args)
{
//定义ArrayBlockingQueue的容量
int capacity = 5;
//创建ArrayBlockingQueue对象
ArrayBlockingQueue<String> queue = new ArrayBlockingQueue<String>(capacity);
//添加5个元素到ArrayBlockingQueue中
queue.offer("User");
queue.offer("Employee");
queue.offer("Manager");
queue.offer("Analyst");
queue.offer("HR");
//通过调用toArray()方法创建数组
Object[] array = queue.toArray();
//打印队列
System.out.println("队列是: " + queue);
//打印数组元素
System.out.println("通过toArray()方法创建的数组是:");
for (Object i : array) {
System.out.println(i);
}
}
}
输出:
队列是:[User, Employee, Manager, Analyst, HR]
通过toArray()方法创建的数组是:
User
Employee
Manager
Analyst
HR
toArray() 方法简介:
toArray() 方法是 ArrayBlockingQueue 类中的一个方法。toArray(T[] a) 方法用于创建一个包含与该 ArrayBlockingQueue 相同元素的数组,顺序正确。 它还具有附加条件。 如果队列大小小于或等于指定数组,则返回的数组类型与参数中指定的数组的类型相同。否则,将分配一个大小与此队列大小相同,并且与指定数组类型相同的新数组。 此方法充当集合和数组之间的桥梁。 假设队列是 ArrayBlockingQueue,并且只包含字符串。 然后,String[] new_arr = queue.toArray(new String[0]); 请注意,toArray(new Object[0]) 与 toArray() 方法相同。
语法:
public T[] toArray(T[] a)
参数:
方法需要一个参数 arr,如果足够大,则将队列中的所有元素都复制到该数组中;否则将为此分配相同运行时类型的一个新数组。
返回值:
该方法返回包含此队列中所有元素的数组。
异常:
方法可能会抛出以下异常之一:
- ArrayStoreException: 当传递的数组是不同类型的并且无法与队列元素进行比较时。
- NullPointerException: 如果数组为空。
参考:
- https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ArrayBlockingQueue.html#toArray
- https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ArrayBlockingQueue.html#toArray-T:A
极客教程