はじめに
Javaを学んでいると、こんな素朴な疑問にぶつかることがあります。
int と Integer の違いって何?どっちを使えばいいの?
特に、ポケモンの回復アイテムをMapやListで管理したいとき、
Integer
を使わないと怒られることも……。この記事では、
現場での使い分けを含めて、この疑問をまるっと解消します!
1. int
とInteger
のちがい
項目 | int |
Integer |
---|---|---|
種類 | プリミティブ型(基本型) | 参照型(オブジェクト型) |
メモリの扱い | 値を直接保持(ヒープ領域・スタック領域) | オブジェクトとしてヒープ領域に保持 |
null の代入 | 不可 | 可(null を代入できる) |
メソッドの利用 | できない |
.compareTo() などのメソッドが使える |
コレクション利用 | 不可(直接は使えない) | 可(List, Map などで使える) |
2. なぜ Integer
が必要なときがあるの?
Javaのコレクション(ListやMapなど)は、「参照型(オブジェクト)」を
使う必要があるため。
int のようなプリミティブ型を使う場合は、
Integerなどのラッパークラスに変換して扱う必要があります
List<int> nums = new ArrayList<>(); // ❌ コンパイルエラー
List<Integer> nums = new ArrayList<>(); // ✅ OK!
3. 実際の現場で使うのはどっち?
基本的には以下の考え方でOKです!
✅ int
を使う場面
- 単純な計算・比較・代入だけで済むとき
- null を扱わない
- 性能が大事(int のほうが軽い)
✅ Integer
を使う場面
- null の可能性がある(DB値や外部入力など)
- ListやMapなどのコレクションに入れる
- オブジェクトとして扱いたい(メソッドを使いたい)
4. ポケモンで例えるなら?
ちょっとムリヤリだけど、こんな感じ!
ポケモンで例えると……
型 | 例 (ピカチュウの状態) |
使用イメージ |
---|---|---|
int |
モンスターボールに入っていない | 鳴いたり、十万ボルトが出せる。 (四則演算( + , - , × , ÷ )、比較( < , > , = )) |
Integer |
モンスターボールに入っている | ・持ち運べて、リュックにしまえる。(List,Map) ・ポケモンセンターで回復したり、ボックスに預けたりできる(Integerメソッド) |
まとめ
-
int
は軽くて速い、だけど使える範囲は限定的! -
Integer
はいろんな場面で必要になるけど、nullに気をつけよう! - コレクション・null を扱うときは
Integer
を選ぼう!
あとがき
ここまで読んでくれて、本当にありがとうございました。
「プログラミングって難しい…」って思ってた人も、
「ちょっと楽しいかも…!」って思ってもらえたらうれしいな。
次の投稿も、よろしくおねがいします。
💬 コメント・フィードバック歓迎!
「この章わかりやすかった!」
「これ表現まちがってない?」
「次は○○をやってほしい!」などなど、
お気軽にコメントで教えてくださいね!