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]); } } }