Table of Contents
ToggleJava Convert List to Array
兩種最重要的資料結構 List 和陣列, List 是屬於 Java Collections 框架的接口,物件的形式有序存儲元素,並保留插入順序,允許存儲重複值, Array 是同一資料類型的多個值的集合,可以包含物件和基本型別, Java List Array 任務是將該 List 轉換為 Array ,本篇增加了範例,並透過單元測試來驗證產出結果。
檔案目錄
./
+- src
+- test
| +- org
| +- ruoxue
| +- java_147
| +- conversion
| +- list
| +- ListToArrayTest.java
單元測試
Java List to Array 提供 List 轉換成陣列等操作。
iteration
Java List to Array 使用迴圈轉換成 Array 。
@Test
public void iteration() {
int expectedSize = 5;
List<String> list = Arrays.asList("Java 147", "Spring boot 168", "Junit 151", "Bash 460", "IT 484");
String[] array = new String[list.size()];
for (int i = 0; i < list.size(); i++) {
array[i] = list.get(i);
}
System.out.println(Arrays.toString(array));
assertEquals(expectedSize, array.length);
List<Integer> intList = Arrays.asList(147, 168, 151, 460, 484);
int[] intArray = new int[list.size()];
for (int i = 0; i < intList.size(); i++) {
intArray[i] = intList.get(i);
}
System.out.println(Arrays.toString(intArray));
assertEquals(expectedSize, intArray.length);
Integer[] integerArray = new Integer[list.size()];
for (int i = 0; i < intList.size(); i++) {
integerArray[i] = intList.get(i);
}
System.out.println(Arrays.toString(integerArray));
assertEquals(expectedSize, integerArray.length);
}
[Java 147, Spring boot 168, Junit 151, Bash 460, IT 484]
[147, 168, 151, 460, 484]
toArray
Java List to Array 使用 toArray 轉換成 Array 。
@Test
public void toArray() {
int expectedSize = 5;
List<String> list = Arrays.asList("Java 147", "Spring boot 168", "Junit 151", "Bash 460", "IT 484");
String[] array = list.toArray(new String[0]);
System.out.println(Arrays.toString(array));
assertEquals(expectedSize, array.length);
List<Integer> intList = Arrays.asList(147, 168, 151, 460, 484);
Integer[] integerArray = intList.toArray(new Integer[0]);
System.out.println(Arrays.toString(integerArray));
assertEquals(expectedSize, integerArray.length);
}
[Java 147, Spring boot 168, Junit 151, Bash 460, IT 484]
[147, 168, 151, 460, 484]
streamToArray
Java List to Array 使用 stream 轉換成 Array 。
@Test
public void streamToArray() {
int expectedSize = 5;
List<String> list = Arrays.asList("Java 147", "Spring boot 168", "Junit 151", "Bash 460", "IT 484");
String[] array = list.stream().toArray(String[]::new);
System.out.println(Arrays.toString(array));
assertEquals(expectedSize, array.length);
List<Integer> intList = Arrays.asList(147, 168, 151, 460, 484);
int[] intArray = intList.stream().mapToInt(Integer::intValue).toArray();
System.out.println(Arrays.toString(intArray));
assertEquals(expectedSize, intArray.length);
Integer[] integerArray = intList.stream().toArray(Integer[]::new);
System.out.println(Arrays.toString(integerArray));
assertEquals(expectedSize, integerArray.length);
}
[Java 147, Spring boot 168, Junit 151, Bash 460, IT 484]
[147, 168, 151, 460, 484]
[147, 168, 151, 460, 484]
ArrayUtils_toPrimitive
Convert List to Array in Java 使用 ArrayUtils.toPrimitive 轉換成 Array 。
@Test
public void ArrayUtils_toPrimitive() {
int expectedSize = 5;
List<Integer> intList = Arrays.asList(147, 168, 151, 460, 484);
Integer[] integerArray = intList.toArray(new Integer[0]);
int[] intArray = ArrayUtils.toPrimitive(integerArray);
System.out.println(Arrays.toString(intArray));
assertEquals(expectedSize, intArray.length);
}
[147, 168, 151, 460, 484]
Ints_toArray
Convert List to Array in Java 使用 Ints.toArray 轉換成 Array 。
@Test
public void Ints_toArray() {
int expectedSize = 5;
List<Integer> intList = Arrays.asList(147, 168, 151, 460, 484);
int[] intArray = Ints.toArray(intList);
System.out.println(Arrays.toString(intArray));
assertEquals(expectedSize, intArray.length);
}
[147, 168, 151, 460, 484]
ListToArrayTest.java
Convert List to Array in Java 新增單元測試,驗證是否符合預期。
心得分享
List to Array in Java 將 List 轉換為 Array 實例的多種方法,也有其他選擇使用外部程式庫來轉換成 Array ,像是 Apache Commons Lang 、 Guava 等, Convert List to Array in Java 提供將 List 實例轉換為 Array 實例的多種方法。
package org.ruoxue.java_147.conversion.list;
import static org.junit.Assert.*;
import java.util.Arrays;
import java.util.List;
import org.apache.commons.lang3.ArrayUtils;
import org.junit.Test;
import com.google.common.primitives.Ints;
public class ListToArrayTest {
@Test
public void iteration() {
int expectedSize = 5;
List<String> list = Arrays.asList("Java 147", "Spring boot 168", "Junit 151", "Bash 460", "IT 484");
String[] array = new String[list.size()];
for (int i = 0; i < list.size(); i++) {
array[i] = list.get(i);
}
System.out.println(Arrays.toString(array));
assertEquals(expectedSize, array.length);
List<Integer> intList = Arrays.asList(147, 168, 151, 460, 484);
int[] intArray = new int[list.size()];
for (int i = 0; i < intList.size(); i++) {
intArray[i] = intList.get(i);
}
System.out.println(Arrays.toString(intArray));
assertEquals(expectedSize, intArray.length);
Integer[] integerArray = new Integer[list.size()];
for (int i = 0; i < intList.size(); i++) {
integerArray[i] = intList.get(i);
}
System.out.println(Arrays.toString(integerArray));
assertEquals(expectedSize, integerArray.length);
}
@Test
public void toArray() {
int expectedSize = 5;
List<String> list = Arrays.asList("Java 147", "Spring boot 168", "Junit 151", "Bash 460", "IT 484");
String[] array = list.toArray(new String[0]);
System.out.println(Arrays.toString(array));
assertEquals(expectedSize, array.length);
List<Integer> intList = Arrays.asList(147, 168, 151, 460, 484);
Integer[] integerArray = intList.toArray(new Integer[0]);
System.out.println(Arrays.toString(integerArray));
assertEquals(expectedSize, integerArray.length);
}
@Test
public void streamToArray() {
int expectedSize = 5;
List<String> list = Arrays.asList("Java 147", "Spring boot 168", "Junit 151", "Bash 460", "IT 484");
String[] array = list.stream().toArray(String[]::new);
System.out.println(Arrays.toString(array));
assertEquals(expectedSize, array.length);
List<Integer> intList = Arrays.asList(147, 168, 151, 460, 484);
int[] intArray = intList.stream().mapToInt(Integer::intValue).toArray();
System.out.println(Arrays.toString(intArray));
assertEquals(expectedSize, intArray.length);
Integer[] integerArray = intList.stream().toArray(Integer[]::new);
System.out.println(Arrays.toString(integerArray));
assertEquals(expectedSize, integerArray.length);
}
@Test
public void ArrayUtils_toPrimitive() {
int expectedSize = 5;
List<Integer> intList = Arrays.asList(147, 168, 151, 460, 484);
Integer[] integerArray = intList.toArray(new Integer[0]);
int[] intArray = ArrayUtils.toPrimitive(integerArray);
System.out.println(Arrays.toString(intArray));
assertEquals(expectedSize, intArray.length);
}
@Test
public void Ints_toArray() {
int expectedSize = 5;
List<Integer> intList = Arrays.asList(147, 168, 151, 460, 484);
int[] intArray = Ints.toArray(intList);
System.out.println(Arrays.toString(intArray));
assertEquals(expectedSize, intArray.length);
}
}