0

私はこのようなマップを持っているクエリを持っています

  Map ppvValidatedinfo = new HashMap<String, List<String>>();

そして、このような値が含まれています

   1  22 23 24 25

したがって、1 はキー (患者 ID) で、値 (scriptinfo) は 22,23,24,25 です。

以下に示すように、バックエンドからこの値を取得しています

String ScriptInfo = ((IItemPluRx)item).getScriptInfo();

ここで、スクリプト情報の値が 24 であるとします。

リストにある値セクションのマップに24が含まれているかどうかを知りたいのですが、含まれている場合はリストから削除したいので、それを達成する方法を教えてください

4

3 に答える 3

3
ppvValidatedinfo.get("1").remove("24");

ppvValidatedinfo が一般的であると仮定します

 Map<String, List<String>> ppvValidatedinfo = new HashMap<String, List<String>>();

それ以外は

((List)ppvValidatedinfo.get("1")).remove("24");

キーがマップにない場合は NullPointerException をスローする可能性があることに注意してください。これは次のように修正できます。

List<String> list = ppvValidatedinfo.get(key);
if (list != null){
   list.remove(value);
}
于 2013-01-23T07:05:42.417 に答える
1

HashMap を反復処理し、List オブジェクトを取り出してから、それを反復処理する必要があります。検索値が見つかった場合は、対応するキーを持つ HashMap エントリを削除します。

于 2013-01-23T07:08:03.123 に答える
0

簡単にできます。削除から

指定された要素が存在する場合、このリストから最初に見つかった要素を削除します。リストに要素が含まれていない場合、要素は変更されません。より正式には、 (o==null ? get(i)==null : o.equals(get(i))) (そのような要素が存在する場合) となる最小のインデックス i を持つ要素を削除します。このリストに指定された要素が含まれていた場合 (または、呼び出しの結果としてこのリストが変更された場合) は true を返します。

List<String> value =  ppvValidatedinfo.get("1");
if(value != null){
   boolean deleted = value.remove("24");
}
于 2013-01-23T07:10:58.307 に答える