Java ArrayList 數組之間互相轉換。本站提示廣大學習愛好者:(Java ArrayList 數組之間互相轉換)文章只能為提供參考,不一定能成為您想要的結果。以下是Java ArrayList 數組之間互相轉換正文
做研發的同伙都曉得,在項目開辟中常常會碰著list與數組類型之間的互相轉換,本文經由過程一個簡略的例子給年夜家講授具有轉換進程。
Java代碼
package test.test1; import java.util.ArrayList; import java.util.List; public class Test { /** * @param args */ public static void main(String[] args) { List list=new ArrayList(); list.add("王利虎"); list.add("張三"); list.add("李四"); int size=list.size(); String[] array=new String[size]; for(int i=0;i<list.size();i++){ array[i]=(String)list.get(i); } for(int i=0;i<array.length;i++){ System.out.println(array[i]); } } }
正如下面所羅列的,當要將ArrayList類型的數據轉換為String[]的時刻,必需對List類型停止遍歷,其實沒有這類需要,List供給給我們一個很好的辦法處理List轉換成為數組的成績,不防再看一個例子:
package test.test1; import java.util.ArrayList; import java.util.List;
Java代碼
public class Test { public static void main(String[] args) { List<String> list=new ArrayList<String>(); list.add("王利虎"); list.add("張三"); list.add("李四"); int size=list.size(); String[] array = (String[])list.toArray(new String[size]); for(int i=0;i<array.length;i++){ System.out.println(array[i]); } } }
你能否發明這才是你想要的呢?其實很簡略,ArrayList供給public <T> T[] toArray(T[] a)辦法前往一個依照准確的次序包括此列表中一切元素的數組;前往數組的運轉時類型就是指定命組的運轉時類型。假如列表能放入指定的數組,則前往放入此列表元素的數組。不然,將依據指定命組的運轉時類型和此列表的年夜小分派一個新的數組。
假如指定的數組能包容列表並有殘剩空間(即數組的元素比列表的多),那末會將數組中緊跟在聚集末尾的元素設置為 null。這對肯定列表的長度很有效,但只 在挪用方曉得列表中不包括任何 null 元素時才有效。
那末又怎樣將數組轉換成為List呢?不防再看一個小小的例子,以下所示:
Java代碼
package test.test1; import java.util.ArrayList; import java.util.List; public class Test { public static void main(String[] args) { String[] array=new String[3]; array[0]="王利虎"; array[1]="張三"; array[2]="李四"; List<String> list=new ArrayList<String>(); for(int i=0;i<array.length;i++){ list.add(array[i]); } for(int i=0;i<list.size();i++){ System.out.println(list.get(i)); } } }
你是不發明很費事啊?其實數組轉換成為List的成績Arrays對象也供給給我們public static <T> List<T> asList(T... a)供我們挪用, 試運轉上面的例子:
package test.test1; import java.util.Arrays; import java.util.List; public class Test { public static void main(String[] args) { String[] array=new String[3]; array[0]="王利虎"; array[1]="張三"; array[2]="李四"; List<String> list=Arrays.asList(array); for(int i=0;i<list.size();i++){ System.out.println(list.get(i)); } } }
簡略吧,asList辦法前往一個受指定命組支撐的固定年夜小的列表,此辦法同 Collection.toArray 一路,充任了基於數組的 API 與基於 collection 的 API 之間的橋梁。前往的列表是可序列化的,而且完成了 RandomAccess。除此以外, 此辦法還供給了一個創立固定長度的列表的便捷辦法,該列表被初始化為包括多個元素:
package test.test1; import java.util.Arrays; import java.util.List; public class Test1 { public static void main(String[] args) { List<String> list = Arrays.asList("王利虎","張三","李四"); for(int i=0;i<list.size();i++){ System.out.println(list.get(i)); } } }