カテゴリ: Java 更新日: 2026/10/09

JavaのIntegerクラスの使い方を完全ガイド!初心者でもわかる整数操作

Integerクラス
Integerクラス

先生と生徒の会話形式で理解しよう

生徒

「先生、Javaで整数を扱うときにintをよく使いますけど、Integerクラスって何のためにあるんですか?」

先生

「良いところに気づきましたね。Integerクラスはintのラッパークラスで、より多くの便利な機能を持っているんですよ。」

生徒

「ラッパークラスってどういうことですか?普通のintと何が違うんでしょうか?」

先生

「それでは、intとIntegerの違いや、Integerクラスの便利な使い方を順番に解説していきましょう。」

1. java.langパッケージとIntegerクラスとは

1. java.langパッケージとIntegerクラスとは
1. java.langパッケージとIntegerクラスとは

Javaプログラミングを始めると、必ずお世話になるのがjava.langパッケージです。このパッケージには、Javaを動かすために必要不可欠な基本クラスが詰まっており、開発者がわざわざimport文を書かなくても、最初から自由に使えるようになっています。

その中でも重要な役割を持つのがIntegerクラスです。Javaには「数値を扱うための箱」として、メモリ効率の良いint型(プリミティブ型)がありますが、これだけでは「高度な機能」を使いたいときに不便な場合があります。そこで、int型を包み込んで(ラップして)、便利なメソッドやオブジェクトとしての性質を持たせたのが「ラッパークラス」であるIntegerなのです。

例えば、リスト構造に数値を格納したり、画面から入力された「文字列の数字」を計算可能な「数値」に変換したりする際に、このIntegerクラスが活躍します。未経験者の方でも、まずは「intをパワーアップさせた特別なクラス」だとイメージすれば分かりやすいでしょう。

イメージで理解するInteger

・int:ただの数字(メモリ上の値)。計算は早いが、自分自身で特別なことはできない。
・Integer:多機能な数字(オブジェクト)。文字列に変換したり、最大値を調べたりする「特技」を持っている。


public class IntroductionExample {
    public static void main(String[] args) {
        // int型(プリミティブ型)の宣言
        int primitiveNum = 10;

        // Integer型(ラッパークラス)の宣言
        // intの値をオブジェクトとして包み込んでいます
        Integer wrapperNum = Integer.valueOf(10);

        System.out.println("プリミティブ型の値: " + primitiveNum);
        System.out.println("ラッパークラスの値: " + wrapperNum);
    }
}

プリミティブ型の値: 10
ラッパークラスの値: 10

2. intとIntegerの違い

2. intとIntegerの違い
2. intとIntegerの違い

Javaで数値を扱う際、intとIntegerのどちらを使うべきか迷うことがあります。この2つの決定的な違いは、「ただの値」か「便利な機能を持ったオブジェクト」かという点にあります。

intはプリミティブ型(基本データ型)と呼ばれ、計算処理が非常に速く、メモリの消費も最小限で済みます。しかし、ただの数値データであるため、自分自身でメソッド(便利な命令)を呼び出すことができません。

一方でIntegerは、intを包み込んだラッパークラス(オブジェクト型)です。オブジェクトとして扱えるため、ListやMapといった「コレクション」と呼ばれるデータのまとまりに格納することができます。Java5以降では、これらを自動で変換してくれる「オートボクシング」という機能があるため、現在では初心者の方でも複雑な変換処理を意識せずに使い分けることが可能になっています。

比較ポイントのまとめ

・int(プリミティブ型):計算用。スピード重視。null(空の状態)を保持できない。
・Integer(ラッパークラス):多機能用。リストへの保存や、nullを扱いたい場合に利用する。

具体的な違いをプログラムで見てみましょう。intは直接数値を代入するだけですが、Integerはメソッドを使って他の型へ変換するといった操作が可能です。


public class TypeDifferenceExample {
    public static void main(String[] args) {
        // int型:単純な計算に向いている
        int score = 100;
        int nextScore = score + 50;

        // Integer型:オブジェクトとしての機能が使える
        Integer boxedScore = Integer.valueOf(score);
        
        // 例えば、数値を浮動小数点数(double)として取り出すメソッドなどが使えます
        double doubleScore = boxedScore.doubleValue();

        System.out.println("int型の計算結果: " + nextScore);
        System.out.println("Integer型から変換した値: " + doubleScore);
    }
}

int型の計算結果: 150
Integer型から変換した値: 100.0

このように、基本的には計算効率の良いintを使い、リストへの格納や特殊な変換が必要な場面でIntegerを選択するというのが、Java開発におけるスマートな使い分けの第一歩です。

3. Integerクラスの基本的な生成方法

3. Integerクラスの基本的な生成方法
3. Integerクラスの基本的な生成方法

Integerクラスのインスタンス(オブジェクト)を作る方法はいくつかありますが、現代のJava開発において最も一般的で推奨されるのが「オートボクシング」と「valueOfメソッド」の2つです。

かつてはnew Integer(100)のように記述していましたが、この書き方は現在では非推奨(推奨されない古い書き方)となっています。なぜなら、valueOfメソッドを使うと、Javaが内部で「よく使う数値(-128から127)」を再利用(キャッシュ)してくれるため、メモリの節約になり処理スピードも向上するからです。

また、実務で最も多用されるのが「オートボクシング」です。これは、int型の数値をそのままInteger型の変数に代入するだけで、Javaが自動的に変換してくれる非常に便利な仕組みです。逆に、Integerオブジェクトをint型の変数に代入して戻すことを「アンボクシング」と呼びます。未経験者の方は、まず「基本は直接代入(オートボクシング)でOK」と覚えておきましょう。

生成のポイント

・推奨:直接代入(オートボクシング)または Integer.valueOf()
・非推奨:new Integer() (メモリ効率が悪いため現在は使わない)


public class IntegerCreationExample {
    public static void main(String[] args) {
        // 1. オートボクシング(最も一般的な書き方)
        // まるで普通の数字のように代入できます
        Integer autoBoxedNum = 100;

        // 2. valueOfメソッド(内部でキャッシュを利用する効率的な方法)
        Integer valueOfNum = Integer.valueOf(100);

        // 3. アンボクシング(Integerからintへ自動変換)
        int primitiveNum = autoBoxedNum;

        System.out.println("オートボクシングの値: " + autoBoxedNum);
        System.out.println("valueOfで生成した値: " + valueOfNum);
        System.out.println("int型に戻した値: " + primitiveNum);
    }
}

オートボクシングの値: 100
valueOfで生成した値: 100
int型に戻した値: 100

このように、複雑な儀式をしなくても簡単にオブジェクトを作れるのがJavaの強みです。この「自動で変換してくれる仕組み」のおかげで、私たちは数値の型を過度に気にすることなく、効率的にプログラミングを進めることができます。

4. Integerクラスの主なメソッド

4. Integerクラスの主なメソッド
4. Integerクラスの主なメソッド

Integerクラスには、単なる数値計算を超えて、プログラム開発をスムーズにするための「道具(メソッド)」が豊富に用意されています。特に未経験者の方が実務で頻繁に遭遇するのが、データの型を変換したり、数値の限界値を調べたりする操作です。

これらのメソッドを使いこなせるようになると、ユーザーが入力した文字を計算可能な数値に変えたり、複雑な比較処理をシンプルに記述できたりするようになります。まずは、以下の代表的なメソッドと定数をセットで覚えておきましょう。

よく使うメソッド・定数一覧

  • parseInt(String s):文字列("123"など)を計算用のint型に変換します。
  • valueOf(String s):文字列をIntegerオブジェクトとして取り出します。
  • toString(int i):数値を画面表示や結合のために文字列(String)へ変換します。
  • compare(int x, int y):2つの数字を比較し、どちらが大きいかを判定します。
  • MAX_VALUE / MIN_VALUE:Javaのint型で扱える最大値と最小値を保持している定数です。

実際のプログラムでどのように動くのか、簡単なサンプルコードで確認してみましょう。特に「文字列から数値への変換」は、Webフォームの入力処理などで必須となる知識です。


public class IntegerMethodsExample {
    public static void main(String[] args) {
        // 1. 文字列を数値に変換する (parseInt)
        String inputPrice = "2980";
        int price = Integer.parseInt(inputPrice);
        System.out.println("商品の価格は " + price + " 円です(計算可能)");

        // 2. 数値の大きさを比較する (compare)
        // 左が大きいと正の値、右が大きいと負の値、同じなら0が返ります
        int result = Integer.compare(100, 50);
        System.out.println("比較結果: " + result);

        // 3. int型が扱える限界値を確認する (定数の利用)
        int max = Integer.MAX_VALUE;
        int min = Integer.MIN_VALUE;
        System.out.println("int型の最大値: " + max);
        System.out.println("int型の最小値: " + min);
    }
}

商品の価格は 2980 円です(計算可能)
比較結果: 1
int型の最大値: 2147483647
int型の最小値: -2147483648

このように、Integerクラスのメソッドを使うことで、プリミティブ型のintだけでは難しかった柔軟なデータ操作が、たった一行のコードで実現できるようになります。開発現場では「数値に関する困りごとはまずIntegerクラスのメソッドを探す」と言われるほど強力な味方です。

5. 文字列と数値の変換

5. 文字列と数値の変換
5. 文字列と数値の変換

実務のアプリケーション開発において、最も頻繁に発生する操作の一つが「データの型変換」です。特に、Web画面の入力フォームやファイルから読み込んだデータは、中身が数字であってもJavaの世界では「文字列(String型)」として扱われます。このままでは足し算や引き算などの計算ができないため、Integerクラスの出番となります。

文字列を整数に変換する際にはInteger.parseInt()メソッドを、逆に計算した結果の数値を画面に表示するために文字列へ戻す際にはInteger.toString()メソッドを使用します。未経験者の方は、「型を変換しないと計算機が数字として認識してくれない」というイメージを持つと理解がスムーズになります。

変換の使い分け

・String → int:Integer.parseInt("123") ※計算したい時
・int → String:Integer.toString(123) ※文字として表示・結合したい時

それでは、具体的なプログラムで変換の流れを確認してみましょう。数字の「100」と文字列の「100」がどう違うのかに注目してください。


public class ConversionExample {
    public static void main(String[] args) {
        // 1. 文字列から数値への変換
        String strNumber = "123";
        int num = Integer.parseInt(strNumber);
        
        // 数値に変換されているので、計算が可能です
        int result = num + 7; 

        // 2. 数値から文字列への変換
        // 計算結果を再び文字列に戻して、他の文字と結合しやすくします
        String text = Integer.toString(result);

        System.out.println("元の文字列: " + strNumber);
        System.out.println("計算した結果(数値): " + result);
        System.out.println("最終的な文字列: " + text);
    }
}

元の文字列: 123
計算した結果(数値): 130
最終的な文字列: 130

このように、Integerクラスを仲介役にすることで、異なるデータ型同士を自由に行き来させることができます。もしparseIntに「あいうえお」のような数字以外の文字を渡してしまうと、エラーが発生してプログラムが止まってしまうため、必ず「数字に見える文字列」を渡すように意識しましょう。

6. 整数の比較と等号判定

6. 整数の比較と等号判定
6. 整数の比較と等号判定

equalsメソッドはオブジェクトの等価性を判定し、==演算子は参照の比較を行います。そのため、Integer同士を比較する場合はequalsを使うのが基本です。ただし、小さな値(-128から127)はキャッシュされるため、==でも同じ結果になることがありますが、混乱を避けるためにequalsを推奨します。


Integer a = 100;
Integer b = 100;
System.out.println(a == b); // true (キャッシュのため)
System.out.println(a.equals(b)); // true

7. 実践的な活用例

7. 実践的な活用例
7. 実践的な活用例

Integerクラスはデータベースとのやり取り、ユーザー入力の数値変換、コレクションへの格納など様々な場面で使われます。例えば、Webアプリケーションでフォームから送られてきた文字列を整数に変換して処理する際には必ず利用されます。また、最大値や最小値の定数を利用することで範囲チェックを簡単に実装できます。

まとめ

まとめ
まとめ

Integerクラスを通して学んだ整数操作の全体像

ここまで、JavaにおけるIntegerクラスの使い方について、int型との違いから基本的な生成方法、代表的なメソッド、文字列と数値の変換、比較方法、実践的な利用シーンまで順を追って解説してきました。Integerクラスは単なる整数の箱ではなく、Javaプログラミングにおいて非常に重要な役割を持つ存在です。プリミティブ型であるintは高速で軽量ですが、オブジェクトとして扱えないという制約があります。一方でIntegerクラスを使うことで、整数をオブジェクトとしてコレクションに格納したり、メソッドを利用したり、文字列との相互変換を簡単に行うことができます。

特に初心者がつまずきやすいポイントとして、オートボクシングとアンボクシングの仕組み、==演算子とequalsメソッドの違いがあります。Java5以降では、intとIntegerの変換は自動で行われるため、コードは簡潔になりますが、その裏側で何が起きているのかを理解しておくことが重要です。仕組みを理解していないと、比較結果が意図しないものになったり、思わぬバグにつながることがあります。

Integerクラスのメソッドを活用する意義

Integerクラスには、parseIntやvalueOf、toString、compareといった、日常的な開発で頻繁に使われるメソッドが用意されています。ユーザー入力やファイル読み込み、Webフォームの値は多くの場合文字列として扱われるため、それを安全に整数へ変換する処理は欠かせません。Integer.parseIntを使えば、文字列からint型へ変換でき、Integer.valueOfを使えばIntegerオブジェクトとして扱うことができます。

また、MAX_VALUEやMIN_VALUEといった定数は、整数の範囲チェックや入力値の検証を行う際に非常に便利です。これらを活用することで、数値がint型の範囲内に収まっているかどうかを簡潔に判定でき、堅牢なプログラムを書くことができます。こうした基本的な知識の積み重ねが、実務で通用するJavaスキルにつながっていきます。

まとめとしてのサンプルプログラム

最後に、これまで学んだ内容を振り返る意味で、Integerクラスの代表的な使い方をまとめたサンプルプログラムを確認してみましょう。生成、変換、比較といった基本操作が一通り含まれています。


public class IntegerSummaryExample {
    public static void main(String[] args) {
        // Integerの生成
        Integer number1 = Integer.valueOf(50);
        Integer number2 = 50;

        // 文字列と数値の変換
        String input = "300";
        int parsed = Integer.parseInt(input);
        Integer boxed = Integer.valueOf(parsed);

        // 比較処理
        boolean resultEquals = number1.equals(number2);
        int compareResult = Integer.compare(number1, boxed);

        System.out.println("number1とnumber2は等しいか: " + resultEquals);
        System.out.println("number1とboxedの比較結果: " + compareResult);
        System.out.println("最大値: " + Integer.MAX_VALUE);
        System.out.println("最小値: " + Integer.MIN_VALUE);
    }
}

先生と生徒の振り返り会話

生徒

「Integerクラスって、最初はintと何が違うのかよく分からなかったんですけど、オブジェクトとして扱えるっていう点が大きな違いなんですね。」

先生

「その通りです。特にコレクションや文字列変換ではIntegerクラスが欠かせません。intだけではできないことがたくさんあります。」

生徒

「オートボクシングのおかげで、あまり意識せずに書けるのも便利ですね。でも、==とequalsの違いは注意しないといけないと感じました。」

先生

「そこに気づけたのは大きな成長ですよ。仕組みを理解して使えば、Integerクラスはとても心強い味方になります。」

生徒

「これからは、文字列を数値に変換するときや、データをリストに入れるときに、Integerクラスを意識して使ってみます。」

先生

「ぜひ実際に手を動かして試してみてください。基本をしっかり押さえることが、Javaプログラミング上達への近道ですよ。」

生成AIを基礎から学びたい方へ

ChatGPTなどの生成AIをこれから学びたい方に向けて、AIスキルアカデミーの口コミ・評判、料金、無料セミナーの内容を詳しくまとめています。

AIスキルアカデミーの口コミ・評判を詳しく見る
カテゴリの一覧へ
新着記事
New1
Spring
Spring Bootの@RequestParamの使い方を解説!初心者でもわかるGETリクエストのパラメータ取得
更新記事
New2
Java
JavaのLocalDateTime.formatメソッドを完全解説!初心者でもわかる日時フォーマット入門
更新記事
New3
Java
Javaのラムダ式とStreamのfilterを徹底解説!初心者でもわかる条件による絞り込み処理
更新記事
New4
Servlet
JavaのServletExceptionクラスを初心者向けに徹底解説!
更新記事
人気記事
No.1
Java&Spring記事人気No1
Servlet
JavaサーブレットのdoPostメソッドとは?初心者向けにやさしく解説!
No.2
Java&Spring記事人気No2
Servlet
JavaのHttpServletRequestWrapperとgetSessionメソッドの使い方を徹底解説!初心者向けServletのセッション管理入門
No.3
Java&Spring記事人気No3
Servlet
JavaのServletExceptionクラスを初心者向けに徹底解説!
No.4
Java&Spring記事人気No4
Servlet
JavaのHttpServletResponseクラスを初心者向けに徹底解説!
No.5
Java&Spring記事人気No5
Java
JavaのStringクラスとlengthメソッドを完全解説!初心者でも理解できる文字列の長さ取得の使い方
No.6
Java&Spring記事人気No6
Servlet
JavaのHttpSessionAttributeListenerとattributeRemovedメソッドの使い方を徹底解説!初心者でもわかるセッション属性の削除と監視
No.7
Java&Spring記事人気No7
Java
Javaのクラスとインスタンス化、コンストラクタの使い方完全ガイド!初心者でもわかるオブジェクト指向の基礎
No.8
Java&Spring記事人気No8
Servlet
JavaのHttpSessionインターフェースとgetSessionContextメソッドを徹底解説!初心者でもわかるセッション管理の基本