如何将List <namevaluepair>转换为hashMap <string,string =“”>?

时间:2016-03-11 18:57:02

标签: java arraylist hashmap

我使用com.apache.http.NameValuePair从请求网址捕获参数,基本上将这些参数存储在List<NameValuePair>中。要对这些参数进行某些检查和验证,我需要将该列表转换为HashMap<String, String>。有没有办法进行这种转换?

2 个答案:

答案 0 :(得分:9)

你使用Java 8吗?在这种情况下,您可以使用Collectors.toMap()方法:

Map<String, String> mapped = list.stream().collect(
        Collectors.toMap(NameValuePair::getName, NameValuePair::getValue));

否则你必须遍历元素

for(NameValuePair element : list) {
  //logic to convert list entries to hash map entries
}

为了更好地理解,请查看此tutorial

答案 1 :(得分:1)

您可以将它用于Java 8

            <configuration>
                <includes>
                    <include>**/*IT.java</include>
                    <include>**/*Configurator.java</include>
                </includes>
                <groups>http</groups>
            </configuration>

以下是如何在列表中使用它:

public static <K, V, T extends V> Map<K, V> toMapBy(List<T> list,
        Function<? super T, ? extends K> mapper) {
    return list.stream().collect(Collectors.toMap(mapper, Function.identity()));
}

点击链接:

  1. Converting ArrayList to HashMap
  2. Generic static method constrains types too much
  3. Java: How to convert List to Map
相关问题