2011-01-27 9 views
17

をハッシュマップを埋める可能性の重複:初期化時にJavaでHashMapを埋めるためにどのように
How to Initialise a static Map in Java作成中

、このような可能なものでしょうか?

public static Map<byte,int> sizeNeeded=new HashMap<byte,int>(){1,1}; 

答えて

48

バイト、intはプリミティブであり、コレクションはオブジェクト上で動作します。あなたは、あなたがJavaでジェネリック型パラメータとしてプリミティブを持つことができない、この

public static Map<Byte, Integer> sizeNeeded = new HashMap<Byte, Integer>() { 

     { 
      put(new Byte("1"), 1); 
      put(new Byte("2"), 2); 
     } 

     ; 
    }; 

このようなものは、新しいマップを作成する必要があり、それがデータ

すべての
+0

なぜdownvote ?? –

+1

私はそうではありませんが、おそらく '新しいByte((byte)1)'のためです。オートボックスに頼らないかもしれません..そして、init節の最後に ';'使われません。 – dacwe

+0

@dacweキャストのことを指摘してくれてありがとう。 –

1

ファーストを埋めるために入れたメソッドを呼び出しますinitializer blockを使用してMap<byte,int>は不可能なので、Map<Byte,Integer>にする必要があります。

第2に、現在、Javaにコレクションリテラルはありません。ただし、Project Coinの新機能と見なされています。残念ながら、それらはJava 7から削除され、Java 8まで待たなければなりません。

関連する問題