Java中List轉(zhuǎn)Array的兩種主要方式
一、List轉(zhuǎn)Array介紹
在JAVA編程中,List和Array都是很常見的數(shù)據(jù)類型。它們都可以儲存多個相同類型的元素,由于使用場景不同,某些情況下需要將List轉(zhuǎn)換成Array。List轉(zhuǎn)換成Array主要有兩種方式:
1. 利用List的toArray()方法;
2. 利用Collection的toArray()方法。
二、List的toArray()方法
List的toArray()方法可以將List類型的集合轉(zhuǎn)換為數(shù)組類型,其實現(xiàn)方式如下:
List<String> list = new ArrayList<>(); list.add("Java"); list.add("Python"); list.add("JavaScript"); //String[] strings = new String[list.size()]; //list.toArray(strings); String[] strings = list.toArray(new String[list.size()]); System.out.println(Arrays.toString(strings)); //[Java, Python, JavaScript]
上述代碼中,通過list.toArray(array)將List類型的集合轉(zhuǎn)換成String類型的數(shù)組。
需要注意的是,在List類型轉(zhuǎn)換成數(shù)組時,需要預(yù)先聲明數(shù)組類型及其大小。
三、Collection的toArray()方法
public Object[] toArray();
public <T> T[] toArray(T[] a);
Collection的toArray()方法可以將Collection類型的集合轉(zhuǎn)換為數(shù)組類型,使用方式如下:
Collection<String> collection = new ArrayList<>(); collection.add("Java"); collection.add("Python"); collection.add("JavaScript"); Object[] objects = collection.toArray(); String[] strings = Arrays.copyOf(objects, objects.length, String[].class); System.out.println(Arrays.toString(strings)); //[Java, Python, JavaScript]
public <T> T[] toArray(T[] a)的使用
在toArray參數(shù)中直接確定使用什么數(shù)據(jù)類型來接受,T代表數(shù)據(jù)類型,[]代表的是數(shù)組,即在toArray()方法中傳入一個具體數(shù)據(jù)類型的數(shù)組即可。直接返回的就是具體數(shù)據(jù)類型的數(shù)組對象。
長度定義方式一:直接給0即new String[0],如果長度不夠,系統(tǒng)會自動加長度,這樣就消耗了系統(tǒng)的資源。
長度定義方式二:長度給的過長,但是這些多余的長度還在系統(tǒng)中存在,就形成了一個內(nèi)存的浪費。
長度定義方式三:就是在定義String[]數(shù)組的時候,使用集合的長度來定義數(shù)組的長度,因為集合的長度已經(jīng)定了,其元素的個數(shù)也已經(jīng)定了。
上述代碼實現(xiàn)了Collection類型轉(zhuǎn)換成String類型數(shù)組的功能。
需要注意的是,Collection的toArray()方法在執(zhí)行時,需要傳入指定類型的類型參數(shù),否則會拋出ClassCastException類型的異常。
附:Array 轉(zhuǎn) List
String[] string=new String[]{"s1","s2","s3","s4","s5"}; List<String> li= Arrays.asList(string); System.out.println(li);
總結(jié)
到此這篇關(guān)于Java中List轉(zhuǎn)Array的兩種主要方式的文章就介紹到這了,更多相關(guān)Java List轉(zhuǎn)Array內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SpringBoot+layuimini實現(xiàn)左側(cè)菜單動態(tài)展示的示例代碼
Layuimini是Layui的升級版,它是專業(yè)做后臺頁面的框架,而且是適合PC端和移動端,以下地址可以在PC端顯示,也可以在手機(jī)上顯示,只不過會做自適應(yīng),本文將給大家介紹了SpringBoot+layuimini實現(xiàn)左側(cè)菜單動態(tài)展示的方法,需要的朋友可以參考下2024-04-04詳解Kotlin 高階函數(shù) 與 Lambda 表達(dá)式
這篇文章主要介紹了詳解Kotlin 高階函數(shù) 與 Lambda 表達(dá)式的相關(guān)資料,需要的朋友可以參考下2017-06-06