Java集合轉有類型的數組之toArray(T[] a)


  在java變成中慎用強制類型轉換,盡量使用類自帶的轉換函數或泛型。先看一行代碼

錯誤方法:

1 String[] array= (String[]) list.toArray();

  如果list中存放的是string類型,上面的代碼看上去似乎沒有問題,但是運行就會報錯:Exception in thread "main" java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [Ljava.lang.String;

  java中的強制類型轉換只是針對單個對象的,想要偷懶將整個數組轉換成另外一種類型的數組是不行的,這和數組初始化時需要一個個來也是類似的。

  那么問題來了,我們經常需要將集合轉換成有類型的數組,不能對數組整體進行強轉,難道要一個一個遍歷一遍轉換?

  當然不是,jdk集合除了提供toArray()方法,還提供了一個toArray(T[] a)方法,比較low的碼農一般不知道這個也沒怎么研究過,甚至去遍歷一遍一個一個轉。

使用方法:

1 String[] array = new String[list.size()]; 2 list.toArray(array);

或:

1 String[] array= list.toArray(new String[list.size()]);  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM