Java中的List与数组经常会相互转换,以下提供简单的转换方法:
private static void arrayAndList(){
//*********array转list***************
//创建数组的三种方式
// String[] familyArray = new String[4];
// familyArray[0]="oliver";familyArray[1]="olivia";familyArray[2]="yk";familyArray[3]="mm";
// String[] familyArray = new String[]{"oliver","olivia","yk","mm"};
String[] familyArray = {"oliver","olivia","yk","mm"};
List<String> familyList = Arrays.asList(familyArray);
for(String str:familyList){
System.out.println("familyList----"+str);
}
//*********list转array***************
//创建list的最简单方式
List<String> listFamily = new ArrayList<String>(Arrays.asList("oliver","olivia","yk","mm"));
String[] arrayFamily = new String[listFamily.size()];
System.out.println("初始化arrayFamily----"+arrayFamily[0]+arrayFamily[1]+arrayFamily[2]);
listFamily.toArray(arrayFamily);
for(String str:arrayFamily){
System.out.println("arrayFamily----"+str);
}
String[] arrayFamily2 = StringUtils.toStringArray(listFamily);
for(String str:arrayFamily2){
System.out.println("arrayFamily2----"+str);
}
}
上述代码运行后,控制台会打印如下内容:
familyList----oliver
familyList----olivia
familyList----yk
familyList----mm
初始化arrayFamily----nullnullnull
arrayFamily----oliver
arrayFamily----olivia
arrayFamily----yk
arrayFamily----mm
arrayFamily2----oliver
arrayFamily2----olivia
arrayFamily2----yk
arrayFamily2----mm
补充:
数组中的元素可以通过如下方法拼接:
org.apache.commons.lang.StringUtils.join(array,"$$");
Maven引用该包:
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>2.5</version>
</dependency>
补充2:
数组的复制:
private static void arrayCopy(){
int[] data = {1,2,3,4,5};
int[] newData = new int[8];
System.arraycopy(data, 0, newData, 0, data.length);
for(int i=0;i<newData.length;i++){
System.out.println(newData[i]);
}
}
System.arraycopy();System.arraycopy(src, srcPos, dest, destPos, length);这个方法可以实现数组的复制。