Java将列表转换为数组

时间:2020-02-23 14:37:07  来源:igfitidea点击:

在本教程中,我们将看到如何将列表转换为Java中的数组。

有很多方法可以转换 ListArray在Java.

使用toarray()方法

我们可以用 toArray()将列表转换为字符串的方法。

我们可以将大小的数组传递为列表的长度,或者我们可以通过空数组。
这将以正确的顺序返回包含列表的所有元素的数组。
有两种超载的方法 toArray()
语法:

T[] toArray(T[] x)
and
public Object[] toArray();

其中,t代表泛型。

例子:

import java.util.List;
import java.util.ArrayList;
 
class ListToArrayToArray
{
	public static void main(String arg[])
	{
		//creation of list of type String
		List<String> list=new ArrayList<>();
		list.add("Hello");
		list.add("I");
		list.add("Am");
		list.add("John");
		//print content of list
		System.out.println("Elements of list are:");
		System.out.println(list);
		//create an String array of size of list
		//list.size() to know size of list
		String[] arr=new String[list.size()];
		//assign all the element of list in array using toArray() method by passing array
		arr=list.toArray(arr);
		System.out.println("Elements of Array are:");
		for(int i=0; i < arr.length; i++)  
		{
			//printing element of array
			System.out.println(arr[i]);
		}
		//print elements of array using for each loop
		System.out.println("Display using for each loop:");
		for (String a: arr)
		{
			System.out.println(a);
		}
	}
}

输出:

Elements of list are:
[Hello, I, Am, John]
Elements of Array are:
Hello
I
Am
John

请注意,如果我们不通过任何参数 toArray()方法,它会给我们对象数组。

使用Java 8的流

我们可以简单地使用Java 8'流

toArray()将列表转换为数组的方法。

package org.igi.theitroad;
 
import java.util.ArrayList;
import java.util.List;
 
public class ListToArrayJava8Main {
	public static void main(String[] args) {
		//creation of list of type String
		List<String> list=new ArrayList<>();
		list.add("John");
		list.add("Martin");
		list.add("Mary");
		list.add("Andrew");
		//print content of list
		System.out.println("Elements of list are:");
		System.out.println(list);
		
		String[] arr=list.stream().toArray(String[]::new);
		
		System.out.println("Elements of Array are:");
		for(int i=0; i < arr.length; i++)  
		{
			//printing element of array
			System.out.println(arr[i]);
		}
	}
}

使用arrays.copyof.

我们可以用 Arrays.copyOf()方法还要将列表转换为数组。
我们需要使用 toArray()方法并将其传递给 Arrays.copyOf()将其转换为指定类型的方法

package org.igi.theitroad;
 
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
 
public class ListToArrayCopyOfMain {
	public static void main(String[] args) {
		//creation of list of type String
		List<String> list=new ArrayList<>();
		list.add("John");
		list.add("Martin");
		list.add("Mary");
		list.add("Andrew");
		//print content of list
		System.out.println("Elements of list are:");
		System.out.println(list);
		
		String[] arr=Arrays.copyOf(list.toArray(),list.size(),String[].class);
		
		System.out.println("Elements of Array are:");
		for(int i=0; i < arr.length; i++)  
		{
			//printing element of array
			System.out.println(arr[i]);
		}
	}
}

使用system.arraycopy.

我们可以用 System.arraycopy()复制指定数组的方法,从指定位置开始,到目标数组的指定位置。

package org.igi.theitroad;
 
import java.util.ArrayList;
import java.util.List;
 
public class ListToArrayArrayCopyMain {
	public static void main(String[] args) {
		//creation of list of type String
		List<String> list=new ArrayList<>();
		list.add("Netherlands");
		list.add("China");
		list.add("Nepal");
		list.add("Bhutan");
		//print content of list
		System.out.println("Elements of list are:");
		System.out.println(list);
		//create an String array of size of list
		//list.size() to know size of list
		String[] arr=new String[list.size()];
		System.arraycopy(list.toArray(), 0, arr, 0, list.size());
 
		System.out.println("Elements of Array are:");
		for(int i=0; i < arr.length; i++)  
		{
			//printing element of array
			System.out.println(arr[i]);
		}
	}
}

输出:

Elements of list are:
[Netherlands, China, Nepal, Bhutan]
Elements of Array are:
Netherlands
China
Nepal
Bhutan

手动方法

此方法使用循环并运行它直到列表的大小,从列表中获取元素,并将其添加到数组。

例子:

package org.igi.theitroad;
 
import java.util.List;
import java.util.ArrayList;
public class ListToArrayManualMain
{
	public static void main(String arg[])
	{
		//create and initialization of list
		List<Integer> list=new ArrayList<>();
		list.add(800);
		list.add(600);
		list.add(400);
		list.add(200);
		//print content of list
		System.out.print("Elements of list are:");
		System.out.println(list);
		//create an integer array of size of list
		//list.size() to know size of list
		int[] ar=new int[list.size()];
		System.out.println("Elements of Array are:");
		//assigning of element of list one by one to array ar
		for(int i=0;  i < list.size();  i++)
		{
			ar[i]=list.get(i);
			//printing element of array
			System.out.println(ar[i]);
		}
	}
}