Java Convert List to Array - Java 147

Java Convert List to Array – Java 147

Java 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 LangGuava 等, 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);
	}
}

發佈留言