2013-05-23 12 views
7

私は最初のアプリをプログラミングしています。私はいくつかの情報を保存するマップを作成しようとしています。マップに値を挿入< K, V >

私はECLIPSEを使用していますが、同じエラーが発生していますが、Googled(実際にはDuckDuckGo-ed)とStackOverflowで検索してもエラーは見つかりません...だから必死に来ました。

ライブラリは正しくインポートされます(ADTがそうしているので)、Oracleのドキュメントは大丈夫だと思います。なぜ動作していませんか?

つまり、両方の方法のどちらも、キーと値のペアをマップに挿入することはできません。

enter image description here

エラーを見たときに、興味深い部分です。

最初のものはSyntax error on token ",", { expected after this token
第二は、私は少し必死得るために始めていますSyntax error, insert "}" to complete ClassBody

、私はコードを簡単にすることができませんでしたと言う!言います ありがとうございます!

+4

何らかの方法でコードが必要です。 –

答えて

37

このコードを試してみてくださいです。まずこれをメソッドに入れる必要があります。次に、[]構文を使用することはできません。 Map.putを使用する必要があります。

public class Data { 
    public static void main(String[] args) { 
     Map<String, String> data = new HashMap<String, String>(); 
     data.put("John", "Taxi Driver"); 
     data.put("Mark", "Professional Killer"); 
    } 
} 
+0

ありがとう! 私はそれが方法の中になければならないことを知らなかった。私はそれを除いて他のすべてのことを試みました(私は分かりませんでした)。 あまりにも簡単すぎて尋ねる質問があれば申し訳ありませんが、私は絶望的になってしまったときだけStackOverflowに行きます。 もう一度ありがとう – Nico

2

構文は

data.put("John","Taxi driver"); 
+0

はい、これは動作しません。それで、私は '[] '構文を試しました。 ありがとう! – Nico

2

二つの問題がここにあります

HashMap<String, String> map = new HashMap<String, String>(); 
map.put("EmpID", EmpID); 
map.put("UnChecked", "1"); 
3

あなたのコードにある2つのエラーは非常に異なります。

最初の問題は、文のないクラス本体にMapを初期化して設定していることです。 クラス本体に静的なMapステートメントとstatic {//TODO manipulate Map}ステートメントを持つか、またはメソッドまたはクラスのコンストラクターでマップを初期化して設定することができます。

第二の問題は、あなたがarrayのような構文的Mapを扱うことができないということですので、声明data["John"] = "Taxi Driver";data.put("John", "Taxi Driver")に置き換える必要があります。 HashMapに「John」キーが既にある場合、その値は「Taxi Driver」に置き換えられます。

関連する問題