List.toArray()方法的使用和注意事項

一、 List.toArray()方法的定義

在Java中,List是一個非常重要的數據結構。它提供了一種有序且可重複的集合。而toArray()方法便是List介面定義的方法之一,它可以將List集合轉換成一個數組


public Object[] toArray()

toArray()方法不需要傳入任何參數,它會返回一個Object類型的數組。由於數組無法動態擴容,該方法返回的類型為Object[],而非T[],T表示泛型類型。

二、 List.toArray()方法的使用

下面我們通過代碼,來說明如何使用toArray()方法:


    List<String> list = new ArrayList<>();
    list.add("java");
    list.add("c");
    list.add("python");
    
    Object[] array1 = list.toArray();
    // 輸出結果:[Ljava.lang.Object;@7f63425a
    System.out.println(array1);
    
    String[] array2 = list.toArray(new String[0]);
    // 輸出結果:[java, c, python]
    System.out.println(Arrays.toString(array2));

如上述代碼所示,我們可以通過以下兩種方式使用toArray()方法:

  1. 不傳入任何參數
  2. 傳入一個指定類型的空數組

使用第一種方式時,返回一個Object類型的數組;使用第二種方式時,返回一個泛型類型的數組。如果傳入的數組足夠大,可以存儲List中的所有元素,則將集合中的元素全部拷貝至輸入數組中返回。如果傳入的數組大小小於List的大小,則返回一個新的數組,其長度等於List的大小。

三、 List.toArray()方法的注意事項

調用toArray方法時需要注意以下幾點:

1、要求輸入的數組類型正確

toArray方法返回的數組類型由傳入參數的類型來確定,如果傳入的數組類型不是正確的類型,則可能會導致ClassCastException異常。

2、傳入的數組長度合適

如果傳入的數組不夠大,無法存儲List中的所有元素,則toArray()方法會創建一個新的數組返回,其包含所有元素。如果傳入的數組過大,則該方法只會在數組中存儲List中的元素,並將其餘位置置為null。

我們可以通過下面代碼來驗證傳入數組過大的情況:


    String[] array3 = new String[6];
    String[] array4 = list.toArray(array3);
    // 輸出結果:[java, c, python, null, null, null]
    System.out.println(Arrays.toString(array4));

以上代碼中,我們定義了一個長度為6的數組,實際上List中只有3個元素。所以toArray()方法只會將List中的元素拷貝到數組中,而其餘位置被設置為null。

3、傳入null數組

如果傳入null數組,則toArray()方法會新建一個數組來存儲List中的元素。傳入null數組的代碼如下所示:


    String[] array5 = null;
    String[] array6 = list.toArray(array5);
    // 輸出結果:[java, c, python]
    System.out.println(Arrays.toString(array6));

4、toArray()方法永遠不會返回null

如果List中的元素為空,則toArray()方法會返回一個長度為0的數組。

通過上述代碼示例和注意事項,我們可以很好的理解List.toArray()方法的使用和注意事項。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/255018.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-15 12:14
下一篇 2024-12-15 12:14

相關推薦

  • int類型變數的細節與注意事項

    本文將從 int 類型變數的定義、聲明、初始化、範圍、運算和類型轉換等方面,對 int 類型變數進行詳細闡述和講解,幫助讀者更好地掌握和應用 int 變數。 一、定義與聲明 int…

    編程 2025-04-29
  • 解決.net 6.0運行閃退的方法

    如果你正在使用.net 6.0開發應用程序,可能會遇到程序閃退的情況。這篇文章將從多個方面為你解決這個問題。 一、代碼問題 代碼問題是導致.net 6.0程序閃退的主要原因之一。首…

    編程 2025-04-29
  • ArcGIS更改標註位置為中心的方法

    本篇文章將從多個方面詳細闡述如何在ArcGIS中更改標註位置為中心。讓我們一步步來看。 一、禁止標註智能調整 在ArcMap中設置標註智能調整可以自動將標註位置調整到最佳顯示位置。…

    編程 2025-04-29
  • Python中init方法的作用及使用方法

    Python中的init方法是一個類的構造函數,在創建對象時被調用。在本篇文章中,我們將從多個方面詳細討論init方法的作用,使用方法以及注意點。 一、定義init方法 在Pyth…

    編程 2025-04-29
  • Python創建分配內存的方法

    在python中,我們常常需要創建並分配內存來存儲數據。不同的類型和數據結構可能需要不同的方法來分配內存。本文將從多個方面介紹Python創建分配內存的方法,包括列表、元組、字典、…

    編程 2025-04-29
  • Python中讀入csv文件數據的方法用法介紹

    csv是一種常見的數據格式,通常用於存儲小型數據集。Python作為一種廣泛流行的編程語言,內置了許多操作csv文件的庫。本文將從多個方面詳細介紹Python讀入csv文件的方法。…

    編程 2025-04-29
  • 用不同的方法求素數

    素數是指只能被1和自身整除的正整數,如2、3、5、7、11、13等。素數在密碼學、計算機科學、數學、物理等領域都有著廣泛的應用。本文將介紹幾種常見的求素數的方法,包括暴力枚舉法、埃…

    編程 2025-04-29
  • 使用Vue實現前端AES加密並輸出為十六進位的方法

    在前端開發中,數據傳輸的安全性問題十分重要,其中一種保護數據安全的方式是加密。本文將會介紹如何使用Vue框架實現前端AES加密並將加密結果輸出為十六進位。 一、AES加密介紹 AE…

    編程 2025-04-29
  • Tensor to List的使用

    Tensor to List是TensorFlow框架提供的一個非常有用的函數,在很多的深度學習模型中都會用到。它的主要功能是將TensorFlow中的張量(Tensor)轉換為P…

    編程 2025-04-29
  • Python學習筆記:去除字元串最後一個字元的方法

    本文將從多個方面詳細闡述如何通過Python去除字元串最後一個字元,包括使用切片、pop()、刪除、替換等方法來實現。 一、字元串切片 在Python中,可以通過字元串切片的方式來…

    編程 2025-04-29

發表回復

登錄後才能評論