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 の自然順序付け