JavaのIntegerクラスの使い方を完全ガイド!初心者でもわかる整数操作
生徒
「先生、Javaで整数を扱うときにintをよく使いますけど、Integerクラスって何のためにあるんですか?」
先生
「良いところに気づきましたね。Integerクラスはintのラッパークラスで、より多くの便利な機能を持っているんですよ。」
生徒
「ラッパークラスってどういうことですか?普通のintと何が違うんでしょうか?」
先生
「それでは、intとIntegerの違いや、Integerクラスの便利な使い方を順番に解説していきましょう。」
1. java.langパッケージとIntegerクラスとは
Javaのjava.langパッケージは自動的にインポートされる基本的なクラス群を提供しています。その中でもIntegerクラスは、プリミティブ型のintをオブジェクトとして扱えるようにするラッパークラスです。これにより、intの値をオブジェクトとして格納したり、文字列との変換を簡単に行ったりすることができます。
2. intとIntegerの違い
Javaではintはプリミティブ型であり、計算速度が速くメモリ効率も良いのが特徴です。一方でIntegerはオブジェクトとして扱えるため、コレクションフレームワークに格納できる、メソッドを呼び出せるなどの利点があります。Java5以降はオートボクシングとアンボクシングにより、intとIntegerの変換を自動で行ってくれるため、開発者は意識せずに両方を扱うことが可能になっています。
3. Integerクラスの基本的な生成方法
Integerオブジェクトはnewで作成する方法もありますが、通常はvalueOfメソッドやオートボクシングを利用します。推奨されるのはvalueOfで、内部的なキャッシュを利用するため効率が良いです。
public class IntegerExample {
public static void main(String[] args) {
Integer num1 = Integer.valueOf(100);
Integer num2 = 200; // オートボクシング
int primitive = num1; // アンボクシング
System.out.println("num1: " + num1);
System.out.println("num2: " + num2);
System.out.println("primitive: " + primitive);
}
}
num1: 100
num2: 200
primitive: 100
4. Integerクラスの主なメソッド
Integerクラスには便利なメソッドが多数用意されています。特に初心者が覚えておきたい代表的なものを紹介します。
- parseInt(String s):文字列をint型に変換する
- valueOf(String s):文字列をIntegerオブジェクトに変換する
- toString(int i):intを文字列に変換する
- compare(int x, int y):二つの整数を比較する
- MAX_VALUE:intの最大値(2,147,483,647)
- MIN_VALUE:intの最小値(-2,147,483,648)
5. 文字列と数値の変換
アプリケーション開発では、文字列を整数に変換する場面が多くあります。そのときに活躍するのがInteger.parseIntです。また逆に整数を文字列に変換するときはInteger.toStringを使います。
public class ConversionExample {
public static void main(String[] args) {
String str = "123";
int num = Integer.parseInt(str);
String text = Integer.toString(num);
System.out.println("数値: " + num);
System.out.println("文字列: " + text);
}
}
数値: 123
文字列: 123
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. 実践的な活用例
Integerクラスはデータベースとのやり取り、ユーザー入力の数値変換、コレクションへの格納など様々な場面で使われます。例えば、Webアプリケーションでフォームから送られてきた文字列を整数に変換して処理する際には必ず利用されます。また、最大値や最小値の定数を利用することで範囲チェックを簡単に実装できます。