10
9

More than 5 years have passed since last update.

JavaのArrayListの<総称型>とは何か?

Posted at

JavaのArrayListは、多数のオブジェクトをまとめて管理できる。
これは、複数の型のインスタンスを混在させて格納できることを意味する。
たとえば、下記のような実装があるとする。

ArrayList hoge = new ArrayList();
String name = "ほげたろうさん";
hoge.add(name);
String s = (String)hoge.get(0);
java.lang.System.out.println("Oh! Java yamatoken 1648: " + s);                      

コンソールには下記のように表示される。

Oh! Java yamatoken 1648: ほげたろうさん

ArrayList型 の hoge に、String型の name を格納している。
取り出す際は、(String)でキャストしないと、例外が発生する。

ここで、hoge に String型しか格納しないことが明確であれば、
下記のように総称型で宣言したほうがよい。

ArrayList<String> hoge = new ArrayList<String>();
String name = "ほげたろうさん";
hoge.add(name);
String s = hoge.get(0);
java.lang.System.out.println("Oh! Java yamatoken 1649: " + s);                      

コンソールには下記のように表示される。

Oh! Java yamatoken 1649: ほげたろうさん

総称型は ArrayList のあとに <> で定義する。
総称型にすると、取り出す際に、Stringでキャストしなくてよくなる。
(キャストしなくても例外が発生しなくなる)。

10
9
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
10
9