はじめに
Javaで数値を扱うとき、intとIntegerの違いに戸惑ったことはありませんか?
特にJavaのコレクション(ListやMapなど)を使うとき、intじゃダメでIntegerにしなきゃいけないシーンに出会います。
この記事では、Integerクラスでよく使うメソッド10選を実例つきで紹介しながら、
intとの違いや使い分けについても解説します。
🔧 Integer クラスの便利メソッドまとめ
1. parseInt(String s):文字列 → int に変換
String s = "123";
int num = Integer.parseInt(s); // → 123
- よくある「入力が文字列だけど、数値として使いたい!」というときに大活躍
2. valueOf(String s):文字列 → Integer に変換
String s = "456";
Integer num = Integer.valueOf(s); // → new Integer(456)
-
parseIntとの違いは、**戻り値がintではなくInteger**な点
3. compareTo(Integer anotherInteger):大小比較(Comparable)
Integer a = 10;
Integer b = 20;
int result = a.compareTo(b); // → -1(a < b)
| 戻り値 | 意味 |
|---|---|
| 0 | 等しい |
| 正数 | a > b |
| 負数 | a < b |
4. equals(Object obj):値の等価比較
Integer a = 100;
Integer b = 100;
System.out.println(a.equals(b)); // → true
-
==は参照比較なので注意! - 値としての等価性をみたいときは
equalsを使おう
5. toString():Integer → String に変換
Integer num = 99;
String s = num.toString(); // → "99"
6. intValue():Integer → int に変換
Integer num = 123;
int i = num.intValue(); // → 123
- ラッパークラスからプリミティブに変換したいときに
7. max(int a, int b) / min() / sum():数値処理(Java 8以降)
System.out.println(Integer.max(5, 9)); // → 9
System.out.println(Integer.min(5, 9)); // → 5
System.out.println(Integer.sum(5, 9)); // → 14
-
Mathクラスのようなユーティリティ的に使える
8. toBinaryString(int i) / toHexString() / toOctalString():進数変換
System.out.println(Integer.toBinaryString(10)); // → "1010"
System.out.println(Integer.toHexString(255)); // → "ff"
System.out.println(Integer.toOctalString(8)); // → "10"
9. compare(int x, int y):プリミティブの比較(static)
System.out.println(Integer.compare(3, 5)); // → -1(3 < 5)
💡 なぜintじゃダメなときがあるの?
JavaのListやMapは、オブジェクト型しか扱えないというルールがあります。
これは「すべての要素がオブジェクトである」というJavaのコレクション設計方針に従っているためです。
そのため、プリミティブ型のintではなく、**ラッパークラスのInteger**を使う必要があるのです。
List<Integer> list = new ArrayList<>(); // OK
List<int> list = new ArrayList<>(); // NG
🎒 現場での使い分けのコツ
- 基本は
intでOK(軽量・高速) - ListやMap、nullを扱いたいときは
Integer - APIやメソッドの都合で
Integerが必要なことも多い
まとめ表(ざっくり用途別)
| メソッド名 | 目的 |
|---|---|
parseInt(String) |
文字列 → int に変換 |
valueOf(String) |
文字列 → Integer に変換 |
compareTo(Integer) |
値の大小比較(Comparable) |
compare(int, int) |
値の大小比較(static) |
equals(Object) |
値の等価比較(Object) |
toString() |
Integer → 文字列 |
intValue() |
Integer → int
|
max(int, int) / min()
|
最大・最小の取得 |
sum(int, int) |
足し算(static) |
toBinaryString(int) など |
進数表現に変換 |
おわりに
今回紹介したように、Integerクラスはただのオブジェクト型ではなく、便利なメソッドがたくさん詰まったツールボックスでもあります。
「ラッパークラスって結局何ができるの?」と迷っていた方は、ぜひ一度この記事の内容をコードで試してみてくださいね!
あとがき
ここまで読んでくれて、本当にありがとうございました。
「プログラミングって難しい…」って思ってた人も、
「ちょっと楽しいかも…!」って思ってもらえたらうれしいな。
次の投稿も、よろしくおねがいします。
💬 コメント・フィードバック歓迎!
「この章わかりやすかった!」
「これ表現まちがってない?」
「次は○○をやってほしい!」などなど、
お気軽にコメントで教えてくださいね!