Java ArrayList 數(shù)組之間相互轉(zhuǎn)換
做研發(fā)的朋友都知道,在項(xiàng)目開發(fā)中經(jīng)常會碰到list與數(shù)組類型之間的相互轉(zhuǎn)換,本文通過一個簡單的例子給大家講解具有轉(zhuǎn)換過程。
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]);
}
}
}
正如上面所列舉的,當(dāng)要將ArrayList類型的數(shù)據(jù)轉(zhuǎn)換為String[]的時候,必須對List類型進(jìn)行遍歷,其實(shí)沒有這種必要,List提供給我們一個很好的方法解決List轉(zhuǎn)換成為數(shù)組的問題,不防再看一個例子:
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]);
}
}
}
你是否發(fā)現(xiàn)這才是你想要的呢?其實(shí)很簡單,ArrayList提供public <T> T[] toArray(T[] a)方法返回一個按照正確的順序包含此列表中所有元素的數(shù)組;返回?cái)?shù)組的運(yùn)行時類型就是指定數(shù)組的運(yùn)行時類型。如果列表能放入指定的數(shù)組,則返回放入此列表元素的數(shù)組。否則,將根據(jù)指定數(shù)組的運(yùn)行時類型和此列表的大小分配一個新的數(shù)組。
如果指定的數(shù)組能容納列表并有剩余空間(即數(shù)組的元素比列表的多),那么會將數(shù)組中緊跟在集合末尾的元素設(shè)置為 null。這對確定列表的長度很有用,但只 在調(diào)用方知道列表中不包含任何 null 元素時才有用。
那么又怎么將數(shù)組轉(zhuǎn)換成為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));
}
}
}
你是不發(fā)現(xiàn)很費(fèi)事???其實(shí)數(shù)組轉(zhuǎn)換成為List的問題Arrays對象也提供給我們public static <T> List<T> asList(T... a)供我們調(diào)用, 試運(yùn)行下面的例子:
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方法返回一個受指定數(shù)組支持的固定大小的列表,此方法同 Collection.toArray 一起,充當(dāng)了基于數(shù)組的 API 與基于 collection 的 API 之間的橋梁。返回的列表是可序列化的,并且實(shí)現(xiàn)了 RandomAccess。除此之外, 此方法還提供了一個創(chuàng)建固定長度的列表的便捷方法,該列表被初始化為包含多個元素:
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));
}
}
}
相關(guān)文章
jvm內(nèi)存溢出解決方法(jvm內(nèi)存溢出怎么解決)
jvm內(nèi)存溢出解決方法,詳細(xì)內(nèi)容看下面解釋2013-12-12
JavaWeb實(shí)戰(zhàn)之用Servlet+JDBC實(shí)現(xiàn)用戶登錄與注冊
這篇文章主要介紹了JavaWeb實(shí)戰(zhàn)之用Servlet+JDBC實(shí)現(xiàn)用戶登錄與注冊,文中有非常詳細(xì)的代碼示例,對正在學(xué)習(xí)java的小伙伴們有很大的幫助,需要的朋友可以參考下2021-04-04
springboot實(shí)現(xiàn)公眾號接收回復(fù)消息和超過5秒被動回復(fù)消息
本文主要介紹了springboot實(shí)現(xiàn)公眾號接收回復(fù)消息和超過5秒被動回復(fù)消息,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-05-05
Java優(yōu)先隊(duì)列?priority?queue
本文主要介紹了Java優(yōu)先隊(duì)列?priority?queue,優(yōu)先隊(duì)列是一種特殊的數(shù)據(jù)結(jié)構(gòu)隊(duì)列中每一個元素都被分配到一個優(yōu)先權(quán)值,出隊(duì)順序按照優(yōu)先權(quán)值來劃分。一般有兩種出隊(duì)順序高優(yōu)先權(quán)出隊(duì)或低優(yōu)先權(quán)出隊(duì),想了解具體內(nèi)容的小伙伴可以參考下文內(nèi)容,希望對你有所幫助2021-12-12
Java調(diào)用即夢繪圖API實(shí)例Demo
Java提供了多種繪圖API,這篇文章主要介紹了Java調(diào)用即夢繪圖API的相關(guān)資料,文中通過圖文以及代碼介紹的非常詳細(xì),對想學(xué)習(xí)即夢繪圖的同學(xué)們具有一定的參考借鑒價值,需要的朋友可以參考下2025-12-12

