はじめに
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
クラスはただのオブジェクト型ではなく、便利なメソッドがたくさん詰まったツールボックスでもあります。
「ラッパークラスって結局何ができるの?」と迷っていた方は、ぜひ一度この記事の内容をコードで試してみてくださいね!
あとがき
ここまで読んでくれて、本当にありがとうございました。
「プログラミングって難しい…」って思ってた人も、
「ちょっと楽しいかも…!」って思ってもらえたらうれしいな。
次の投稿も、よろしくおねがいします。
💬 コメント・フィードバック歓迎!
「この章わかりやすかった!」
「これ表現まちがってない?」
「次は○○をやってほしい!」などなど、
お気軽にコメントで教えてくださいね!