Java でMapのキーと値をループ処理する

ジェネリックであれば、for (Map.Entry entry : map.entrySet()) でいける。ジェネリックでないものを処理するときに entrySet() をうまく使えてなかったのでメモしておく。
下記は、HttpServletRequest のパラメータを別のハッシュマップにコピーしている。

  Map options = new HashMap();
  for (Iterator i = request.getParameterMap().entrySet().iterator(); i.hasNext();) {
    Map.Entry entry = (Map.Entry) i.next();
    options.put(entry.getKey(), ((String[]) entry.getValue())[0]);
  }

※getParameterMap の Value は String[] のため。