Javaプログラミングのラッパークラス

Javaプログラミングのラッパークラス
ロボ君

Javaプログラミングのコレクションには、基本データ型の情報を直接格納できないデス。

基本データ型の情報をコレクションに格納するには、ラッパークラスを使用します。

目次

ラッパークラス

基本データ型はbyteshortint longfloatdoublebooleancharのデータ型であり、コレクション(例: ArrayList)にはこれらのデータ型を直接格納できません。
その代わり、ラッパークラスを使用して基本データ型をオブジェクトとして扱います。
以下は一般的なラッパークラスの例です。

  • Integer: 整数を表すラッパークラス
  • Float: 浮動小数点数を表すラッパークラス
  • Boolean: 真偽値を表すラッパークラス

基本データ型とラッパークラス

Javaプログラミングでは、整数、浮動小数点数、文字列などのデータを基本データ型で表現します。
基本データ型は、変数に直接代入できる値が入る型です。

int i = 10;
float f = 3.14;

一方、ラッパークラスは、基本データ型に対応したクラスです。
ラッパークラスは、基本データ型の情報をオブジェクトとして表現します。

Integer i = new Integer(10);
Float f = new Float(3.14);

コレクションに基本データ型を格納する

コレクションに基本データ型を直接格納しようとすると、コンパイルエラーになります。

// コンパイルエラー
ArrayList<int> list = new ArrayList<>();
list.add(10);

基本データ型をコレクションに格納するには、ラッパークラスを使用します。

// 正しいコード
ArrayList<Integer> list = new ArrayList<>();
list.add(new Integer(10));

ラッパークラスでArrayListに格納する

コレクションに基本データ型の情報を格納できないという制約を解決する方法として、ラッパークラスとオートボクシングが使われます。

オートボクシング

オートボクシングは、基本データ型とラッパークラスの間で自動的な変換を行う機能です。
コードで基本データ型を使用し、それをラッパークラスのインスタンスとして格納する場合、オートボクシングが行われます。

ArrayList<Integer> list = new ArrayList<>();
list.add(new Integer(10)); // オートボクシング

同様に、ラッパークラスから基本データ型への変換も自動的に行われます。

Integer j = new Integer(10);
int i = j; // アンボクシング
コードの例
import java.util.ArrayList;

public class Main {
    public static void main(String[] args) {
        // ArrayListを生成
        ArrayList<Integer> list = new ArrayList<>();

        // オートボクシングを利用して整数をArrayListに追加
        list.add(10);
        list.add(20);
        list.add(30);

        // オートボクシングを利用してArrayListの要素を取得
        int value = list.get(1);
        System.out.println(value); 
    }
}

↓実行結果

20

この図では、オートボクシングにより、基本データ型の整数がラッパークラスIntegerに変換され、ArrayListに格納されています。
また、オートアンボクシングにより、ArrayListから整数を取得する際に、Integerが自動的に基本データ型の整数に変換されています。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次