Java で ArrayList に Int 配列を変換する
-
Java 8 ストリームを使って
int配列を ArrayList に変換する -
Java の拡張
forループを用いたint配列から ArrayList への変換する -
Guavaを用いてint配列を整数オブジェクトのリストに変換する
このチュートリアルでは、Java でプリミティブな int の配列を ArrayList に変換する方法を紹介します。プリミティブなデータ型の ArrayList は作成できないので、Integer オブジェクトを使用することになります。
Java 8 ストリームを使って int 配列を ArrayList に変換する
この例では、配列を操作するためのいくつかのメソッドを提供する Arrays クラスの Stream API を利用します。これを動作させるには、まず int 要素の配列を作成し、Arrays クラスを使って stream() メソッドを呼び出す。しかし、intArray の項目はプリミティブ型なので、boxed() を使って各プリミティブを Integer オブジェクトの枠に収める必要があります。
collect() メソッドは項目を収集し、Collectors.toList() はリストに変換します。返されたリストを ArrayList<Integer> にキャストできます。
import java.util.ArrayList;
import java.util.Arrays;
import java.util.stream.Collectors;
public class IntToInteger {
public static void main(String[] args) {
int[] intArray = {10, 20, 30, 40};
ArrayList<Integer> integerArray =
(ArrayList<Integer>) Arrays.stream(intArray).boxed().collect(Collectors.toList());
System.out.println(integerArray);
}
}
出力:
[10, 20, 30, 40]
Java の拡張 for ループを用いた int 配列から ArrayList への変換する
配列の各項目を ArrayList に追加するには、手動のメソッドを使用することができます。このメソッドは関数を使わず、代わりに拡張された for ループだけで十分に動作します。いくつかの int 型の要素を持つ配列 intArray と、intArray のサイズと等しい初期サイズを持つ空の ArrayList を作成します。
これで ArrayList は intArray の要素を正確に保持できるようになったので、拡張された for ループを使って、add() メソッドを呼び出して ArrayList に項目を追加できます。for ループは配列を繰り返し処理し、すべての項目が ArrayList に追加されます。
出力を見ると、intArray と同じ要素が得られていることがわかります。
import java.util.ArrayList;
public class IntToInteger {
public static void main(String[] args) {
int[] intArray = {13, 17, 21, 23};
ArrayList<Integer> integerArray = new ArrayList<>(intArray.length);
for (int i : intArray) {
integerArray.add(i);
}
System.out.println(integerArray);
}
}
出力:
[13, 17, 21, 23]
Guava を用いて int 配列を整数オブジェクトのリストに変換する
この例では、Guava ライブラリに含まれる Ints クラスを利用します。ライブラリの関数を利用するには、そのライブラリの maven 依存関係をプロジェクトにインクルードます。
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>23.5-jre</version>
</dependency>
intArray は int 型の要素を持つ配列です。クラス Ints を用いて asList() を呼び出し、配列を引数に渡す。Ints.asList(intArray) は Integer オブジェクトのリストを返します。
import com.google.common.primitives.Ints;
import java.util.List;
public class IntToInteger {
public static void main(String[] args) {
int[] intArray = {13, 17, 21, 23};
List<Integer> integerArray = Ints.asList(intArray);
System.out.println(integerArray);
}
}
出力:
[13, 17, 21, 23]
Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.
LinkedIn関連記事 - Java Array
- Java で 16 進文字列のバイト配列を変換する方法
- Java で 2つの配列を連結する方法
- Java の配列から重複を削除する
- Java で 2D 配列を埋める
- Java で配列のサブセットを取得する
- Java の自然順序付け
