Java将列表转换为数组
时间:2020-02-23 14:37:07 来源:igfitidea点击:
在本教程中,我们将看到如何将列表转换为Java中的数组。
有很多方法可以转换 List到 Array在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]);
}
}
}

