這篇文章主要介紹java中list如何轉為數組,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
創新互聯是一家專業提供遠安企業網站建設,專注與網站建設、做網站、HTML5、小程序制作等業務。10年已為遠安眾多企業、政府機構等服務。創新互聯專業網站制作公司優惠進行中。
java中list集合轉為數組的方法:1、使用無參數toArray方法,語法格式“Object[] toArray();”;2、使用支持泛型的toArray方法,語法格式“
在Java中,經常遇到需要List與數組互相轉換的場景。那么list怎么轉為數組?下面本篇文章給大家介紹一下。
List轉換成數組,可以使用List的toArray()或者toArray(T[] a)方法。
List轉換成數組
List轉換成數組可以調用toArray方法,
這里有兩個重載的方法,
一般使用第2個帶泛型參數的方法:
Object[] toArray(); <T> T[] toArray(T[] a);
2.1.無參數toArray方法
Object[] toArray();
這個方法將List直接轉為Object[]數組。
Java初學者喜歡用這個方法,
沒有參數使用起來很方便,
而且代碼編譯也沒有報錯,
錯誤使用的示例代碼如下:
List<String> strList = new ArrayList<>(); strList.add("list-a"); strList.add("list-b"); String[] strArray = (String[]) strList.toArray();
結果一運行,直接報錯,
不能將Object[]轉化為String[]:
Exception in thread "main" java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [Ljava.lang.String;
正確使用代碼如下:
List<String> strList = new ArrayList<>(); Object[] strArray = strList.toArray();
得到了一個通常情況下沒啥用的Object[]。
2.2.支持泛型的toArray方法
<T> T[] toArray(T[] a);
這個方法接收一個類型為 T 的數組,
注意基本類型是不能作為泛型參數的。
如果是使用int[] 類型數組,
需要把 int[] 換成 Integer[] 。
使用的示例代碼如下:
List<String> strList = new ArrayList<>(); strList.add("list-a"); strList.add("list-b"); String[] strArray = strList.toArray(new String[strList.size()]);
2.3.toArray方法入參的數組大小
針對如下代碼,
分析一下初始化的String數組的大小size,
和List的大小strList.size()的關系,
對于返回值產生的不同影響:
List<String> strList = new ArrayList<>(); strList.add("list-a"); strList.add("list-b"); String[] strArray1 = new String[size]; String[] strArray2 = strList.toArray(strArray1);
2.3.1.size < strList.size()
現在設置size=0,
小于strList.size()=2,
代碼修改部分如下:
String[] strArray1 = new String[0];
返回的strArray2和strArray1不是同一個對象。
2.3.2.size = strList.size()
現在設置size=strList.size(),
代碼修改部分如下:
String[] strArray1 = new String[strList.size()];
返回的strArray2和strArray1是同一個對象。
所以下面兩塊代碼是等價的,
得到的strArray都是我們期望的結果:
String[] strArray = strList.toArray(new String[strList.size()]); String[] strArray = new String[strList.size()]; strList.toArray(strArray);
2.3.3.size > strList.size()
現在設置size=strList.size()+1,
代碼修改部分如下:
String[] strArray1 = new String[strList.size()+1];
返回的strArray2和strArray1是同一個對象,
但是數組的最后一個元素是null,
如果數組中的元素多于List中的元素,
列表復制完后緊接著的數組末尾被設置為null,
即strArray1[strList.size()]=null,
這對于調用方確定數組的真實長度很有用,
如果使用strList.size()+2初始化數組,
則數組的倒數第二個元素是null。
以上是java中list如何轉為數組的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注創新互聯行業資訊頻道!
網站題目:java中list如何轉為數組
當前URL:http://vcdvsql.cn/article16/pdcigg.html
成都網站建設公司_創新互聯,為您提供App開發、網站內鏈、建站公司、網站導航、Google、標簽優化
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯