国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

Java ArrayList 數組之間相互轉換

2019-11-26 14:51:05
字體:
來源:轉載
供稿:網友

做研發的朋友都知道,在項目開發中經常會碰到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));     }   } } 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 小金县| 青铜峡市| 即墨市| 东至县| 闽侯县| 泗水县| 揭东县| 台中市| 漳州市| 喜德县| 尉犁县| 河东区| 西乌珠穆沁旗| 崇阳县| 张家川| 金坛市| 正蓝旗| 凤山市| 北京市| 莎车县| 如皋市| 颍上县| 侯马市| 新民市| 岳普湖县| 赫章县| 辽宁省| 桐庐县| 三明市| 肥城市| 蓬莱市| 红河县| 苗栗县| 北宁市| 冀州市| 宜良县| 旌德县| 炎陵县| 板桥市| 徐州市| 榕江县|