1

コンピューターでHashMapsとArrayListsを正しく機能させるのに問題があります。私は自分のコードを使用し、教科書やオンラインからサンプルをコピーして構文が正しいことを確認しようとしましたが、これまでのところ、EclipseもBlueJayもこれらのデータ構造に物事を「追加」または「配置」することはできません。これが私がしたことのいくつかの例です。

package issues;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.*;

public class StructureIssues {

/*
 * HashMap Attempt
 */
    HashMap<Integer, String> numberNames = new HashMap<Integer, String>();

    numberNames.put(new Integer(1), "hi");// here, I have syntax errors asking me to 
                                      // delete the (), and I have misplaced
                                      // constructs on the dot.

    //When the above line didn't work, I tried creating the objects
    //outside of the parameter list...
    Integer one = new Integer(1);
        String myString = "hi";
    numberNames.put(one, myString); //here it just complains about the parenthesis
                                    //similar results for <String,String> and generic


/*
 * ArrayList Attempt
 */
    ArrayList<String> tryStrings = new ArrayList<String>();
    String tryOne = "one";
    tryStrings.add(tryOne);//Syntax error on tryOne; variable declarator ID expected
                       //also, syntax error on the dot; misplaced constructs

    ArrayList<Integer> tryInts = new ArrayList<Integer>();
    tryInts.add(new Integer(4));//Syntax error on add; expected "=" after it.

    //Below, I have copied two lines from Big Java by Horstmann. 
//The results are the same as my first String ArrayList attempt.
    ArrayList<String> friends = new ArrayList<String>();
    friends.add("Cindy");

}

私と同じような質問を1つか2つ見つけて、彼らのアドバイスに従いましたが、今のところ運がありません。これが私がこれを理解するためにこれまでに試みたものです:

-JDKパッケージを数回再インストールし、64ビットと32ビットの両方を試しました

-Eclipse Indigoを数回再インストールし、64ビットと32ビットの両方を試しました

-Eclipseで、[プロジェクト]->[プロパティ]->[Javaコンパイラ]に移動します。私のJavaコンプライアンスはJavaSE-1.7です

-Eclipseで、[ウィンドウ]->[設定]->[InstalledJRE]に移動します。標準VMを備えたjre7があります。

-パッケージ内のjreシステムライブラリを右クリックし、JavaSE-1.6、1.7に変更して、jre7のデフォルトのワークスペースボックスをチェックしてみました。

-BlueJayで同様のコードを試したのは、別のIDEを試して、それがEclipseなのか自分のコンピューターなのかを確認したかったからです。受け取った:「識別子」が必要です。tryStrings.add( "one");を強調表示しました。

私はここで愚かなことをしていますか?皆さんが提供できるアドバイスをいただければ幸いです。お時間をいただきありがとうございます。

4

2 に答える 2

1

あなたのコードはどの方法にもありません。クラス内のフィールドを宣言して初期化することができます。ただし、これらのフィールドの使用は、メソッド(またはコンストラクター)で行う必要があります。

于 2012-05-24T15:13:44.877 に答える
0

問題は、コードがどのメソッドにも含まれていないことです。putメソッドを呼び出す場所は、変数を宣言する領域です。この変更されたコードを参照してください。mainメソッドから呼び出せるように、変数を静的にしました。

public class StructureIssues {

/*
 * HashMap Attempt
 */
static HashMap<Integer, String> numberNames = new HashMap<Integer, String>();

public static void main(String args[]) {
    numberNames.put(new Integer(1), "hi");// here, I have syntax errors
                                            // asking me to
                                            // delete the (), and I have
                                            // misplaced
                                            // constructs on the dot.

    // When the above line didn't work, I tried creating the objects
    // outside of the parameter list...
    Integer one = new Integer(1);
    String myString = "hi";
    numberNames.put(one, myString); // here it just complains about the
                                    // parenthesis
                                    // similar results for <String,String>
                                    // and generic

    /*
     * ArrayList Attempt
     */
    ArrayList<String> tryStrings = new ArrayList<String>();
    String tryOne = "one";
    tryStrings.add(tryOne);// Syntax error on tryOne; variable declarator ID
                            // expected
                            // also, syntax error on the dot; misplaced
                            // constructs

    ArrayList<Integer> tryInts = new ArrayList<Integer>();
    tryInts.add(new Integer(4));// Syntax error on add; expected "=" after
                                // it.

    // Below, I have copied two lines from Big Java by Horstmann.
    // The results are the same as my first String ArrayList attempt.
    ArrayList<String> friends = new ArrayList<String>();
    friends.add("Cindy");
}

}

于 2012-05-24T15:20:20.767 に答える