Table of Contents
ToggleJava Convert int Array to Integer Array
使用 IntStream.of 、 Arrays.stream 、 Stream.of 、 Apache Commons Lang 、 Guava 等方法進行操作, int 陣列轉換成 Integer 陣列, Java int Array Integer Array 任務是將該 int[] 轉換為 Integer[] ,本篇增加了範例,並透過單元測試來驗證產出結果。
檔案目錄
./
+- src
+- test
| +- org
| +- ruoxue
| +- java_147
| +- conversion
| +- array
| +- IntArrayToIntegerArrayTest.java
單元測試
Java int Array to Integer Array 提供 int 陣列轉換成 Integer 陣列等操作。
iteration
使用迴圈轉換成 Integer Array 。
@Test
public void iteration() {
int expectedSize = 5;
int[] array = { 147, 168, 151, 460, 484 };
Integer[] integerArray = new Integer[array.length];
for (int i = 0; i < array.length; i++) {
integerArray[i] = Integer.valueOf(array[i]);
}
System.out.println(Arrays.toString(integerArray));
assertEquals(expectedSize, integerArray.length);
}
[147, 168, 151, 460, 484]
IntStream_of
Java int Array to Integer Array 使用 IntStream.of 轉換成 Integer Array 。
@Test
public void IntStream_of() {
int expectedSize = 5;
int[] array = { 147, 168, 151, 460, 484 };
IntStream intStream = IntStream.of(array);
Integer[] integerArray = intStream.boxed().toArray(Integer[]::new);
System.out.println(Arrays.toString(integerArray));
assertEquals(expectedSize, integerArray.length);
}
[147, 168, 151, 460, 484]
Arrays_stream
Java int Array to Integer Array 使用 Arrays.stream 轉換成 Integer Array 。
@Test
public void Arrays_stream() {
int expectedSize = 5;
int[] array = { 147, 168, 151, 460, 484 };
IntStream intStream = Arrays.stream(array);
Integer[] integerArray = intStream.boxed().toArray(Integer[]::new);
System.out.println(Arrays.toString(integerArray));
assertEquals(expectedSize, integerArray.length);
}
[147, 168, 151, 460, 484]
Stream_of
Java int Array to Integer Array 使用 Stream.of 轉換成 Integer Array 。
@Test
public void Stream_of() {
int expectedSize = 5;
int[] array = { 147, 168, 151, 460, 484 };
Stream<int[]> stream = Stream.of(array);
Integer[] integerArray = stream.flatMapToInt(e -> Arrays.stream(e)).boxed().toArray(Integer[]::new);
System.out.println(Arrays.toString(integerArray));
assertEquals(expectedSize, integerArray.length);
}
[147, 168, 151, 460, 484]
ArrayUtils_toObject
使用 ArrayUtils.toObject 轉換成 Integer Array 。
@Test
public void ArrayUtils_toObject() {
int expectedSize = 5;
int[] intArray = { 147, 168, 151, 460, 484 };
Integer[] integerArray = ArrayUtils.toObject(intArray);
System.out.println(Arrays.toString(integerArray));
assertEquals(expectedSize, integerArray.length);
}
[147, 168, 151, 460, 484]
Ints_asList_toArray
使用 Ints.asList toArray 轉換成 Integer Array 。
@Test
public void Ints_asList_toArray() {
int expectedSize = 5;
int[] array = { 147, 168, 151, 460, 484 };
Integer[] integerArray = Ints.asList(array).toArray(new Integer[array.length]);
System.out.println(Arrays.toString(integerArray));
assertEquals(expectedSize, integerArray.length);
}
[147, 168, 151, 460, 484]
IntArrayToItegerArrayTest.java
Convert int Array to Integer Array in Java 新增單元測試,驗證是否符合預期。
package org.ruoxue.java_147.conversion.array;
import static org.junit.Assert.*;
import java.util.Arrays;
import java.util.stream.IntStream;
import java.util.stream.Stream;
import org.apache.commons.lang3.ArrayUtils;
import org.junit.Test;
import com.google.common.primitives.Ints;
public class IntArrayToItegerArrayTest {
@Test
public void iteration() {
int expectedSize = 5;
int[] array = { 147, 168, 151, 460, 484 };
Integer[] integerArray = new Integer[array.length];
for (int i = 0; i < array.length; i++) {
integerArray[i] = Integer.valueOf(array[i]);
}
System.out.println(Arrays.toString(integerArray));
assertEquals(expectedSize, integerArray.length);
}
@Test
public void IntStream_of() {
int expectedSize = 5;
int[] array = { 147, 168, 151, 460, 484 };
IntStream intStream = IntStream.of(array);
Integer[] integerArray = intStream.boxed().toArray(Integer[]::new);
System.out.println(Arrays.toString(integerArray));
assertEquals(expectedSize, integerArray.length);
}
@Test
public void Arrays_stream() {
int expectedSize = 5;
int[] array = { 147, 168, 151, 460, 484 };
IntStream intStream = Arrays.stream(array);
Integer[] integerArray = intStream.boxed().toArray(Integer[]::new);
System.out.println(Arrays.toString(integerArray));
assertEquals(expectedSize, integerArray.length);
}
@Test
public void Stream_of() {
int expectedSize = 5;
int[] array = { 147, 168, 151, 460, 484 };
Stream<int[]> stream = Stream.of(array);
Integer[] integerArray = stream.flatMapToInt(e -> Arrays.stream(e)).boxed().toArray(Integer[]::new);
System.out.println(Arrays.toString(integerArray));
assertEquals(expectedSize, integerArray.length);
}
@Test
public void ArrayUtils_toObject() {
int expectedSize = 5;
int[] intArray = { 147, 168, 151, 460, 484 };
Integer[] integerArray = ArrayUtils.toObject(intArray);
System.out.println(Arrays.toString(integerArray));
assertEquals(expectedSize, integerArray.length);
}
@Test
public void Ints_asList_toArray() {
int expectedSize = 5;
int[] array = { 147, 168, 151, 460, 484 };
Integer[] integerArray = Ints.asList(array).toArray(new Integer[array.length]);
System.out.println(Arrays.toString(integerArray));
assertEquals(expectedSize, integerArray.length);
}
}
心得分享
int Array to Integer Array in Java 將 int 陣列轉換成 Integer 陣列實例的多種方法,也有其他選擇使用外部程式庫來轉換成 Integer[] ,像是 Apache Commons Lang 、 Guava 等, Convert int Array to Integer Array in Java 提供了幾種常見方法的操作範例。