MapのKとかVって何なんですか?
put(K key, V value)とかの。
答え:
Java の Genericという新機能です。
テンプレートみたいなものです。
Vector を例に説明すると、
Vector<E>
―Vector(Collection<? extends E> c) ・・コンストラクタのうちの1つ
―boolean add(E o)
―E get(int index)
:
となっています。
したがって、J2SE 1.4 までであれば、
Vector str = new Vector();
str.add(new String("HOGE"));
String s = (String) str.get(0);
となるところを、
Vector <String> str = new Vector<String>();
str.add(new String("HOGE"));
String s = str.get(1);
のように、型を変数宣言時に定義しておけば、後でキャスト(get()の部分)が不要になったりします。
また、
str.add(new Integer(0));
のように Integer型を格納しようとするとコンパイルエラーが発生します。
このように、Vectorはクラスなので、コンストラクタ時に <> で型を指定しておけば、そのインスタンス変数に対するメソッドでは、該当箇所(Vectorの例では <E> ⇒ String のように型展開されることになります。
Mapはインタフェースですが、概要は一緒です。Map インタフェースの実装の際に、型を指定した実装クラスを定義できます。
他は答える:
java1.5から加わった新機能です。
他の人が回答していますが、「Generic」と呼ばれる、
Javaのコレクション系クラスに型付けをするものです。
すでに簡単に説明されている人がいるので、
Java旧バージョンの経験者であれば、この機能は一見すごく簡単に理解できて深く考えずに使われそうですが、
実はとても難しいルールが存在しています。
この事はほとんどのJAVA経験者は簡単に考えてしまっているので理解せずに使用しています。
簡単にGoogleでヒットして出てきた情報から使い方を覚えて、安易な気持ちでしようするのはとても危険です。
この機能を安全にしようするためには、
まず、コレクションと配列の型の扱いルールを深く理解する必要があります。
次にGenericでの型処理がコンパイル時と実行時で2段階あり、
さらに何故この様な処理な事をしなくてはいけないのかまで完全に理解してから使用するほうが安全です。
私がとても参考になった書籍は「Sun SJC-P認定ガイド 310-055対応」です。
試験対策本という事で誤解されがちですが、この本は新バージョンjavaを深く理解する為にとても役に立ちました。
もしあなたがすでに旧バージョンが経験豊富であったり、資格を持っていたとしても相当な知識増加につながると思います。
もちろん全くの初心者にもお勧めです。(が、かなり難しいと思います。)
私の意見としましては、中途半端な知識のままでGeneric機能を使う事はお勧めできません。
知識が無い間はJava1.5でもGenericを使用しないほうがよいでしょう。
ウェブサイトのユーザーによる情報ポスト、JPQA.comのない保証の正しさ.