Java中List轉Array的兩種主要方式
一、List轉Array介紹
在JAVA編程中,List和Array都是很常見的數(shù)據(jù)類型。它們都可以儲存多個相同類型的元素,由于使用場景不同,某些情況下需要將List轉換成Array。List轉換成Array主要有兩種方式:
1. 利用List的toArray()方法;
2. 利用Collection的toArray()方法。
二、List的toArray()方法
List的toArray()方法可以將List類型的集合轉換為數(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類型的集合轉換成String類型的數(shù)組。
需要注意的是,在List類型轉換成數(shù)組時,需要預先聲明數(shù)組類型及其大小。
三、Collection的toArray()方法
public Object[] toArray();
public <T> T[] toArray(T[] a);
Collection的toArray()方法可以將Collection類型的集合轉換為數(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類型轉換成String類型數(shù)組的功能。
需要注意的是,Collection的toArray()方法在執(zhí)行時,需要傳入指定類型的類型參數(shù),否則會拋出ClassCastException類型的異常。
附:Array 轉 List
String[] string=new String[]{"s1","s2","s3","s4","s5"};
List<String> li= Arrays.asList(string);
System.out.println(li);總結
到此這篇關于Java中List轉Array的兩種主要方式的文章就介紹到這了,更多相關Java List轉Array內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
SpringBoot+layuimini實現(xiàn)左側菜單動態(tài)展示的示例代碼
Layuimini是Layui的升級版,它是專業(yè)做后臺頁面的框架,而且是適合PC端和移動端,以下地址可以在PC端顯示,也可以在手機上顯示,只不過會做自適應,本文將給大家介紹了SpringBoot+layuimini實現(xiàn)左側菜單動態(tài)展示的方法,需要的朋友可以參考下2024-04-04
詳解Kotlin 高階函數(shù) 與 Lambda 表達式
這篇文章主要介紹了詳解Kotlin 高階函數(shù) 與 Lambda 表達式的相關資料,需要的朋友可以參考下2017-06-06

