2017-12-13 6 views
0
class Node { 
    long data; 
    Node node; 
    int rank; 
} 
  1. private Map<Long, Node> map = new HashMap<>();JavaのHashMap定義の妥当性?

  2. private Map<Long, Node> map = new HashMap<Long,Node>();

私は私の質問には言及したハッシュマップ上記2の妥当性である

クラスノードのハッシュマップを実装しています。(両方ともcoreectであるかどうかか否か?)。 有効であれば、2つの初期化の違いは何ですか?

+2

Java7から番号1がサポートされています。コンパイラは型を推定します。しかし、Java7の前にはNumber 2だけがサポートされていました。 –

答えて

3

よるとドキュメント:https://docs.oracle.com/javase/tutorial/java/generics/types.htmlのJava SE 7では

以降では、タイプの空のセットでジェネリッククラスのコンストラクタを呼び出す に必要な型引数を置き換えることができ 引数(<>)コンパイラがコンテキストからの型引数を決定または推測できるのであれば、この角括弧(<>)は、非公式にダイヤモンドと呼ばれる です。

Java 7より、どちらも正しいです。

0

どちらも正しい作成方法ですが、右側にデータ型を宣言する必要はありません。 プライベートマップマップ=新しいハッシュマップ<>();

基本的にJavaはあまり冗長ではない言語に向かっています。