📌  相关文章
📜  Java中的 ConcurrentLinkedQueue toArray() 方法

📅  最后修改于: 2022-05-13 01:55:31.753000             🧑  作者: Mango

Java中的 ConcurrentLinkedQueue toArray() 方法

  1. toArray() : ConcurrentLinkedQueuetoArray()方法用于以正确的顺序返回与 ConcurrentLinkedQueue 相同元素的数组。基本上,它将 ConcurrentLinkedQueue 中的所有元素复制到一个新数组中。此方法充当数组和 ConcurrentLinkedQueue 之间的桥梁。

    句法:

    public Object[] toArray()

    返回:该方法返回一个包含类似于 ConcurrentLinkedQueue 的元素的数组

    下面的程序说明了Java.util.concurrent.ConcurrentLinkedQueue.toArray() 方法。

    示例 1:

    // Java Program Demonstrate toArray()
    // method of ConcurrentLinkedQueue
      
    import java.util.concurrent.ConcurrentLinkedQueue;
      
    public class GFG {
      
        public static void main(String[] args)
        {
            // create object of ConcurrentLinkedQueue
            ConcurrentLinkedQueue queue
                = new ConcurrentLinkedQueue();
      
            // Add element to ConcurrentLinkedQueue
            queue.add(2300);
            queue.add(1322);
            queue.add(8945);
            queue.add(6512);
      
            // print queue details
            System.out.println("Queue Contains " + queue);
      
            // apply toArray() method on queue
            Object[] array = queue.toArray();
      
            // Print elements of array
            System.out.println("The array contains:");
            for (Object i : array) {
                System.out.print(i + "\t");
            }
        }
    }
    
    输出:
    Queue Contains [2300, 1322, 8945, 6512]
    The array contains:
    2300    1322    8945    6512
    

    示例 2:

    // Java Program Demonstrate toArray()
    // method of ConcurrentLinkedQueue
      
    import java.util.concurrent.ConcurrentLinkedQueue;
      
    public class GFG {
        public static void main(String args[])
        {
            // Creating a ConcurrentLinkedQueue
            ConcurrentLinkedQueue
                queue = new ConcurrentLinkedQueue();
      
            // elements into the Queue
            queue.add("Welcome");
            queue.add("To");
            queue.add("Jungle");
      
            // Displaying the ConcurrentLinkedQueue
            System.out.println("The ConcurrentLinkedQueue: "
                               + queue);
      
            // Creating the array and using toArray()
            Object[] arr = queue.toArray();
      
            System.out.println("The array is:");
            for (int j = 0; j < arr.length; j++)
                System.out.println(arr[j]);
        }
    }
    
    输出:
    The ConcurrentLinkedQueue: [Welcome, To, Jungle]
    The array is:
    Welcome
    To
    Jungle
    
  2. toArray(T[] a) : ConcurrentLinkedQueuetoArray(T[] a)方法用于一个数组,该数组包含与此 ConcurrentLinkedQueue 相同元素的数组,并以适当的顺序排列。此方法与 toArray() 仅在一个条件下不同。如果 ConcurrentLinkedQueue 大小小于或等于传递的数组,则返回数组的类型与参数中传递的数组相同。否则,分配一个与指定数组类型相同的新数组,数组的大小等于该队列的大小。此方法充当数组和集合之间的桥梁。

    句法:

    public  T[] toArray(T[] a)

    参数:如果数组足够大,此方法将数组作为参数,队列的所有元素都将复制到该数组中。否则,将为其分配一个相同运行时类型的新数组。

    返回:此方法返回包含类似于 ConcurrentLinkedQueue 的元素的数组

    异常:此方法抛出以下异常:

    • ArrayStoreException :当传递的数组与 ConcurrentLinkedQueue 的元素类型不同时。
    • NullPointerException :如果传递的数组为 Null。

    下面的程序说明了Java.util.concurrent.ConcurrentLinkedQueue.toArray(T[] a) 方法。

    示例 1:

    // Java Program Demonstrate toArray()
    // method of ConcurrentLinkedQueue
      
    import java.util.concurrent.ConcurrentLinkedQueue;
      
    public class GFG {
      
        public static void main(String[] args)
        {
            // create object of ConcurrentLinkedQueue
            ConcurrentLinkedQueue queue
                = new ConcurrentLinkedQueue();
      
            // elements into the Queue
            queue.add("Welcome");
            queue.add("To");
            queue.add("Jungle");
      
            // print queue details
            System.out.println("Queue Contains " + queue);
      
            // the array to pass in toArray()
            // array has size equal to size of ConcurrentLinkedQueue
            String[] passArray = new String[queue.size()];
      
            // Calling toArray(T[] a) method
            Object[] array = queue.toArray(passArray);
      
            // Print elements of passed array
            System.out.println("\nThe array passed :");
            for (String i : passArray) {
                System.out.print(i + " ");
            }
      
            System.out.println();
      
            // Print elements of returned array
            System.out.println("\nThe array returned :");
            for (Object i : array) {
                System.out.print(i + " ");
            }
        }
    }
    
    输出:
    Queue Contains [Welcome, To, Jungle]
    
    The array passed :
    Welcome To Jungle 
    
    The array returned :
    Welcome To Jungle
    

    示例 2:显示ArrayStoreException

    // Java Program Demonstrate toArray()
    // method of ConcurrentLinkedQueue
      
    import java.util.concurrent.ConcurrentLinkedQueue;
      
    public class GFG {
      
        public static void main(String[] args)
        {
            // create object of ConcurrentLinkedQueue
            ConcurrentLinkedQueue queue
                = new ConcurrentLinkedQueue();
      
            // Add element to ConcurrentLinkedQueue
            queue.add(2323);
            queue.add(2472);
            queue.add(4235);
            queue.add(1242);
      
            // the array to pass in toArray()
            // array has size equal to size of ConcurrentLinkedQueue
            String[] passArray = new String[queue.size()];
      
            // Calling toArray(T[] a) method
            try {
                Object[] array = queue.toArray(passArray);
            }
            catch (ArrayStoreException e) {
                System.out.println("Exception: " + e);
            }
        }
    }
    
    输出:
    Exception: java.lang.ArrayStoreException: java.lang.Integer
    

    示例 2:显示NullPointerException

    // Java Program Demonstrate toArray()
    // method of ConcurrentLinkedQueue
      
    import java.util.concurrent.ConcurrentLinkedQueue;
      
    public class GFG {
      
        public static void main(String[] args)
        {
            // create object of ConcurrentLinkedQueue
            ConcurrentLinkedQueue queue
                = new ConcurrentLinkedQueue();
      
            // Add element to ConcurrentLinkedQueue
            queue.add(2323);
            queue.add(2472);
            queue.add(4235);
            queue.add(1242);
      
            // the array to pass
            String[] passArray = null;
      
            // Calling toArray(T[] a) method
            try {
                Object[] array = queue.toArray(passArray);
            }
            catch (NullPointerException e) {
                System.out.println("Exception: " + e);
            }
        }
    }
    
    输出:
    Exception: java.lang.NullPointerException