package exercise0;
import java.util.Map;
import java.util.Set;
import java.util.TreeMap;
import java.util.TreeSet;
import jp.avaj.lib.debug.L;
/**
* Map<String,String>から特定の値の組を削除する
・以下のMapから"333"の値の組を削除する
"aaa" => "111"
"bbb" => "222"
"ccc" => "333"
"ddd" => "444"
"eee" => "555"
注意事項
Mapの要素の削除をループの中でやってはいけない
以下を参照
*/
class E0460 {
public static void main(String[] args) {
Map<String,String> map = createMap();
deleteFromMap(map,"333");
//
Set<String> keys = map.keySet();
for (String key : keys) {
L.p(key+":"+map.get(key));
}
}
private static void deleteFromMap(Map<String,String> map,String value) {
Set<String> delKeys = new TreeSet<String>();
Set<String> keys = map.keySet();
for (String key : keys) {
if (map.get(key).equals(value)) {
// 注意、ここで削除処理をしてはいけない ⇒ 試しにやってみること
delKeys.add(key);
}
}
for (String delKey : delKeys) {
map.remove(delKey);
}
}
private static Map<String,String> createMap() {
Map<String,String> map = new TreeMap<String,String>();
map.put("aaa","111");
map.put("bbb","222");
map.put("ccc","333");
map.put("ddd","444");
map.put("eee","555");
return map;
}
}
//---------------------------------------------------
//・目次 - 未経験者向け Java演習問題(制御構造とStringとjava.util)
//・目次 - Java入門
//・目次 - ビジネスパーソンの常識と非常識
//・目次 - 論理・発想・思考についての考察と鍛え方
//・目次 - 単なる雑談
//---------------------------------------------------