HOME > ジェネリック
ジェネリック
ジェネリックはJ2SE 5.0から導入された機能で、List型やMap型などに入れる型をあらかじめ規定しておける仕組みです。ジェネリックを使うと以下のようなメリットがあります。
・List型やMap型にどんな型が入っているかすぐ分かる。
・List型やMap型から値を取り出すときにキャストが不要。
・違う型をセットしたらコンパイル時点で分かる。
サンプルソースコード
- ジェネリックを使ったサンプル
-
import java.util.ArrayList; import java.util.Iterator; public class ArrayListSample { public static void main(String args[]) { //String型を格納するArrayListの生成 ArrayList<String> al = new ArrayList<String>(); al.add("A"); al.add("B"); al.add("C"); //al.add(new Integer(10)); ←String型でないためコンパイル時点でエラーとなる //ArrayListを1件ずつ取り出し画面に表示する Iterator<String> it = al.iterator(); while (it.hasNext()) { System.out.println(it.next()); //←キャストが不要 } } }
- 実行結果
- C:\>java ArrayListSample A B C
以下、いろいろなジェネリックの書き方サンプルです。
- Integer型を保持するList
-
List<Integer> list = new ArrayList<Integer>(); list.add(100); list.add(200); list.add(300);
- キーがString型、値がInteger型を保持するMap
-
Map<String, Integer> map = new HashMap<String, Integer>(); map.put("KEY1", 100); map.put("KEY2", 200); map.put("KEY3", 300);
- String型のListを保持するList
-
List<List<String>> list = new ArrayList<List<String>>(); List<String> param1 = new ArrayList<String>(); param1.add("A"); param1.add("B"); List<String> param2 = new ArrayList<String>(); param2.add("X"); param2.add("Y"); list.add(param1); list.add(param2);
- String,Integer型のMapを保持するList
-
List<Map<String, Integer>> list = new ArrayList<Map<String, Integer>>(); Map<String, Integer> map1 = new HashMap<String, Integer>(); map1.put("KEY1", 100); map1.put("KEY2", 200); Map<String, Integer> map2 = new HashMap<String, Integer>(); map2.put("KEY1", 300); map2.put("KEY2", 400); list.add(map1); list.add(map2);
コレクションカテゴリ