0

以前に同様の質問がありましたが、今回は異なりますが、この質問を重複と見なさないでください..

Map m = new LinkedHashMap();
m.put ("123", "23"); 
m.put ("323", "23");
m.put ("153", "23");
m.put ("623", "23");
m.put ("125", "23");
m.put ("122", "24");
m.put ("167", "24");
m.put ("173", "24");
m.put ("113", "25");

ここで私の質問は、上に見られるように、患者 ID 23 に関連付けられているスクリプトがいくつあるかを調べる必要があるということです。合計 5 つの異なるスクリプトがあります。

私はこれをやった..

List<String> keys = new ArrayList<String>();
        for(String str: m.keySet())
        {
            if(m.get(str).equals("23")) {
                keys.add(str);
            }
        }

しかし、コンパイラエラーがオブジェクトを文字列に変換できないことを示しています。アドバイスしてください。

4

3 に答える 3

3

変化する

Map m = new LinkedHashMap();

Map <String,String>m = new LinkedHashMap<String,String>();

したがって、文字列を指す文字列のマップであることがわかります。

于 2013-01-09T18:07:48.753 に答える
1

「オブジェクトを文字列に変換できません。アドバイスしてください」 <--Map宣言で許可されていないため、これは正常です。

次のように宣言する必要があります。

Map<String, String> m = new LinkedHashMap<String, String>();
于 2013-01-09T18:07:55.910 に答える
0

Map を文字列の Map として定義していません。したがって、繰り返し処理しているキーセットはオブジェクトのセットです。Map 宣言を次のように変更してみてください。

Map<String, String> m = new LinkedHashMap<String, String>();
于 2013-01-09T18:09:19.493 に答える