[ JDK ] 列表轉數組 toArray

    <T> T[] toArray(T[] a) :該方法返回一個數組,數組元素包含了 List<T> 中的全部元素,數組中的元素順序和 List<T> 中的元素順序保持一致。java

    該方法聲明瞭類型參數(泛型參數) T ,表明數組元素的類型。請注意,返回值類型 T[] 和參數類型 T[] 是同一種類型,這就說明,參數指定的類型等同了返回值的類型。在本例,咱們的參數指定爲 new Person[roster.size()] ,它的類型是一個元素類型爲 Person 的數組,這就表明返回值類型也是元素類型爲 Person 的數組。數組

List<Person> roster = ...
Person[] rosterAsArray = roster.toArray(new Person[roster.size()]);

    該方法的參數是 T[] a ,如果 a 的大小可以裝得下 List<T> 中的全部元素,該方法的返回值就是 a 。不然,該方法會建立一個新的數組,其類型和 a 保持一致,大小和 List<T> 元素個數保持一致,返回值就是新建立的數組。微信

    方法的參數 new Person[roster.size()] ,它的大小恰好是 List<T> 元素的個數,可以裝得下 List<T> 中的全部元素,因此,該方法返回值就是數組 new Person[roster.size()] ,無需建立新的數組。該方法的參數是 T[] a ,如果 a 的大小超過 List<T> 中元素的元素個數,剩餘的空間會被設置成 null 。code

    該方法是基於數組的對象和基於 Collection 的對象( List 是 Collection 的子類)的橋樑,提供了把基於 Collection 的對象轉化爲基於數組的對象的通道。而且,該方法能夠經過指定參數的類型,精確地控制返回值的類型,而不是簡單地返回一個元素類型是 Object 類型的數組。參數類型是數組 T[] ,建立數組時,經過指定數組的大小( List<T> 的元素個數有多少,就指定數組的大小有多大),能夠有效的避免空間的浪費。對象

 

 

 

更多技術交流,敬請關注微信公衆號,掃一掃下方二維碼便可關注:io

相關文章
相關標籤/搜索