8

うまくいけば、本当に簡単な質問です。私はこのようなことをしたい:

Map<String, String> temp = { colName, data };

colNamedataは文字列変数です。

ありがとう。

4

3 に答える 3

16

マップはインターフェースです。それを実装するクラスの 1 つのインスタンスを作成します。

Map<String, String> temp = new HashMap<String, String>();
temp.put(colName, data);

または、Java 7 では:

Map<String, String> temp = new HashMap<>();
temp.put(colName, data);
于 2012-07-30T01:31:42.533 に答える
2

@JohnGirataは正しいです。

本当に動揺している場合は、ここをご覧くださいhttp://nileshbansal.blogspot.com.au/2009/04/initializing-java-maps-inline.html

それはあなたが求めているものとはまったく異なりますが、それでもなお、巧妙なトリック/ハックです。

于 2012-07-30T01:33:49.290 に答える
2

作成したばかりのエントリにエントリを配置する簡単な方法はMap次のとおりです (HashMap を使用させてください)。

Map<String,String> temp = new HashMap<String,String>(){{
    put(colName, data);
}};

閉じセミコロンが付いたすべての括弧に注意してください。

一般に を使用してthis のようなものを記述Java7できるのは事実ですが、要素を Map インラインに配置する場合、これは機能しません。言い換えれば、次のことをしようとすると、コンパイラはあなたに怒鳴ります (理由は聞かないでください)。diamond operatorMap<String,String> temp = new HashMap<String,String>();

Map<String,String> temp = new HashMap<>(){{
    put(colName, data);
}};
于 2012-07-30T01:49:00.830 に答える