😺

【Java】Listとオートボクシング・アンボクシングの関係

2025/02/02に公開

オートボクシングとは?

プリミティブ型(int, double など)を対応するラッパークラス(Integer, Double など)に自動変換するしくみ

int num = 10;
Integer boxedNum = num; // オートボクシング

アンボクシングとは?

ラッパークラス(Integer, Double など)を対応するプリミティブ型に自動変換するしくみ

Integer boxedNum = 20;
int num = boxedNum; // アンボクシング

Listとオートボクシング・アンボクシングの関係

List<int> のようにプリミティブ型を直接扱うことはできず、代わりに List<Integer> のようにラッパークラスを使用します。

例)オートボクシングの適用

下記のように、list.add(10); のとき、10 は int 型ですが、Integer に自動変換(オートボクシング)されて List<Integer> に追加されます。

List<Integer> list = new ArrayList<>();
list.add(10);  // オートボクシング (int → Integer)
list.add(20);
System.out.println(list); // [10, 20]

例)アンボクシングの適用

list.get(0); は Integer を返しますが、int num = list.get(0); のように代入すると自動的に int に変換(アンボクシング)されます。

int num = list.get(0); // アンボクシング (Integer → int)
System.out.println(num); // 10

Udemyで講座を公開中!
https://zenn.dev/codek2/articles/e9e44f3e0023fb

X(旧Twitter)
https://twitter.com/kunchan2_

Zenn 本
https://zenn.dev/codek2?tab=books

Youtube
https://www.youtube.com/@codek2_studio

Discussion