[Java]HashMapでint型変数を格納したいとき


が検索でヒットする感じだったので。適当に英訳で得た情報を交えつつ、日本語でメモ。

広告

ジェネリック型変数ではプリミティブ型は使えない

 ので、int型変数を格納したい場合は、Integerで指定する。
 そうすると、使える。なんかauto-boxing/unboxing?かそのへんのおかげで、putするときは態々new Integer(i)しなくてもいいようである。
 なおgetでも同じように、int i = map.get(“hoge”);とかできるらしい。
 ただし、このgetのときにKeyが存在しなければ、暗黙的に呼ばれているintValue()があるために、NullPointerExceptionがスローされる。getで返されたNullにintValue()をかけるためらしい。
 避けるためには明示的にIntegerにget代入をかければよいらしい。
 以上。

広告

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA