📜  Java中的 ArrayBlockingQueue toArray() 方法(1)

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

Java中的 ArrayBlockingQueue toArray() 方法

1. 简介

Java 中的 ArrayBlockingQueue 是一种基于数组结构的阻塞队列。该队列按照先进先出的原则对元素进行排序。同时,ArrayBlockingQueue 中提供了 toArray() 方法,用于将队列转换成数组。

该方法具有以下特点:

  • toArray() 方法将队列中的元素按照队列存储元素的顺序转换为数组。
  • 如果队列中的元素类型与目标数组的元素类型不一致,则会在运行时抛出 ArrayStoreException。
  • 如果目标数组的长度小于队列的大小,则新建一个具有相同元素类型和相同元素内容的数组并返回。如果目标数组长度大于队列的大小,则将队列中的所有元素复制到新数组中,其余位置为 null。
2. 语法
public <T> T[] toArray(T[] a)
3. 参数
  • a:目标数组
4. 返回值

返回转换后的数组。

5. 示例
import java.util.concurrent.*;

public class Main {
  public static void main(String[] args) {
    // 创建一个大小为5的 ArrayBlockingQueue
    ArrayBlockingQueue<String> queue = new ArrayBlockingQueue<>(5);
    
    // 添加元素到队列中
    queue.add("hello");
    queue.add("world");
    queue.add("java");
    
    // 将队列转换成数组
    String[] strArray = new String[5];
    strArray = queue.toArray(strArray);
    
    // 遍历输出数组内容
    for (String str : strArray) {
      System.out.println(str);
    }
  }
}

输出结果:

hello
world
java
null
null
6. 总结
  • ArrayBlockingQueue 中的 toArray() 方法可以将队列转换成数组。
  • 转换后的数组中的元素顺序与队列中的元素顺序相同。
  • 如果目标数组的长度小于队列的大小,则会新建一个具有相同元素类型和相同元素内容的数组并返回。
  • 如果目标数组长度大于队列的大小,则将队列中的所有元素复制到新数组中,其余位置为 null。