9
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【ポケモン×Java】Integerクラスで使える便利メソッド10選!

Posted at

はじめに

Javaで数値を扱うとき、intIntegerの違いに戸惑ったことはありませんか?
特に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のListMapは、オブジェクト型しか扱えないというルールがあります。
これは「すべての要素がオブジェクトである」という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() Integerint
max(int, int) / min() 最大・最小の取得
sum(int, int) 足し算(static)
toBinaryString(int) など 進数表現に変換

おわりに

今回紹介したように、Integerクラスはただのオブジェクト型ではなく、便利なメソッドがたくさん詰まったツールボックスでもあります。

「ラッパークラスって結局何ができるの?」と迷っていた方は、ぜひ一度この記事の内容をコードで試してみてくださいね!

あとがき

ここまで読んでくれて、本当にありがとうございました。

「プログラミングって難しい…」って思ってた人も、
「ちょっと楽しいかも…!」って思ってもらえたらうれしいな。

次の投稿も、よろしくおねがいします。

💬 コメント・フィードバック歓迎!

「この章わかりやすかった!」
「これ表現まちがってない?」
「次は○○をやってほしい!」などなど、
お気軽にコメントで教えてくださいね!


9
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?