web-dev-qa-db-ja.com

MultivaluedMapを反復処理し、キーとそれに対応する最初の値を抽出する方法は?

ここに私のコードは私の最初の試みです。しかし、これを行う正しい方法は何ですか。

    private Map<String,String> prepareParameters(MultivaluedMap<String, String> queryParameters) {

    Map<String,String> parameters = new HashMap<String,String>();
    for (Map.Entry<String,List<String>> e : queryParameters.entrySet()) {
        parameters.put(e.getKey(), e.getValue().get(0));
    } 
10
John Doe

これを行う1つの方法は次のとおりです。

  private Map<String,String> prepareParameters(MultivaluedMap<String, String> queryParameters) {

   Map<String,String> parameters = new HashMap<String,String>();

   Iterator<String> it = queryParameters.keySet().iterator();


         while(it.hasNext()){
           String theKey = (String)it.next();
           parameters.put(theKey,queryParameters.getFirst(theKey));
       }

   return parameters;

    }

または、Dinei Rockenbachによって提案されているように、イテレータを使用せずに、次のように実行できます:-

  private Map<String,String> prepareParameters(MultivaluedMap<String, String> queryParameters) {

   Map<String,String> parameters = new HashMap<String,String>();

   for(String str : queryParameters.keySet()){
     parameters.put(str, queryParameters.getFirst(str));
   }
   return parameters;

    }
19
John Doe