Javaで整数リストをintアレイに変換する
この投稿では、Javaで整数のリストをプリミティブ整数アレイに変換する方法について説明します。
1.Java8を使用する
Java 8が提供するStreamを使用して、整数のリストをJavaのプリミティブ整数アレイに変換できます。与えられたものを変換することから始めます List<Integer>
に Stream<Integer>
を使用して List.stream()
方法。今私たちがする必要があるのは変換することだけです Stream<Integer>
に int[]
。参照してください これ 詳細な説明は投稿してください。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
import java.util.Arrays; import java.util.List; class Main { //Javaで整数のリストをプリミティブ整数アレイに変換するプログラム public static void main(String[] args) { List<Integer> list = Arrays.asList(1, 2, 3, 4, 5); int[] primitive = list.stream() .mapToInt(Integer::intValue) .toArray(); System.out.println(Arrays.toString(primitive)); } } |
出力:
[1, 2, 3, 4, 5]
リスト内のnull値を処理する方法は?
IntStream.toArray()
をスローします NullPointerException
リストにnull値が存在する場合。 null値を処理するための多くのオプションがあります。
1.マッピングする前にnull値を除外します。
1 2 3 4 |
int[] primitive = list.stream() .filter(Objects::nonNull) .mapToInt(Integer::intValue) .toArray(); |
2.null値をデフォルト値にマップします。
1 2 3 4 |
int[] primitive = list.stream() .map(i -> (i == null ? 0 : i)) .mapToInt(Integer::intValue) .toArray(); |
3.ラムダ式自体の内部でnullを処理します。
1 2 3 |
int[] primitive = list.stream() .mapToInt(i -> (i == null ? 0 : i)) .toArray(); |
2. ApacheCommonsLangの使用
Apache Commons Lang's ArrayUtils
クラスは toPrimitive()
整数アレイをプリミティブintに変換できるメソッド。まず、整数のリストを整数アレイに変換する必要があります。使用できます List.toArray()
簡単に変換できます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
import org.apache.commons.lang3.ArrayUtils; import java.util.Arrays; import java.util.List; class Main { //Javaで整数のリストをプリミティブ整数アレイに変換するプログラム public static void main(String[] args) { List<Integer> list = Arrays.asList(1, 2, 3, 4, 5); int[] primitive = ArrayUtils.toPrimitive(list.toArray(new Integer[0])); System.out.println(Arrays.toString(primitive)); } } |
toPrimitive()
をスローします NullPointerException
リストにnull値が存在する場合。以下に示すように、関数に渡す前にnull値をフィルタリングできます。
1 2 |
Integer[] boxed = ints.stream().filter(Objects::nonNull).toArray(Integer[]::new); int[] primitive = ArrayUtils.toPrimitive(boxed); |
3.Guavaライブラリの使用
Guava’s Ints.toArray()
整数のリストをプリミティブ整数アレイに変換することもできます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
import com.google.common.primitives.Ints; import java.util.Arrays; import java.util.List; class Main { //Guavaを使用して整数のリストをプリミティブ整数アレイに変換するプログラム public static void main(String[] args) { List<Integer> ints = Arrays.asList(1, 2, 3, 4, 5); int[] primitive = Ints.toArray(ints); System.out.println(Arrays.toString(primitive)); } } |
出力:
[1, 2, 3, 4, 5]
Ints.toArray()
をスローします NullPointerException
リストにnull値が存在する場合。 null値をに渡す前にフィルタリングできます Ints.toArray()
前のセクションで見たように。
1 2 3 |
int[] primitive = Ints.toArray(ints.stream() .filter(Objects::nonNull) .collect(Collectors.toList())); |
これで、Javaで整数リストをintのアレイに変換できます。