问题
I'm capturing parameters from a request url using com.apache.http.NameValuePair
which basically store those params in List<NameValuePair>
. To do certain checks and verifications on those params, I need to convert that list into a HashMap<String, String>
. Is there a way to do this conversion?
回答1:
Do you use Java 8? In that case you could make use of the Collectors.toMap() method:
Map<String, String> mapped = list.stream().collect(
Collectors.toMap(NameValuePair::getName, NameValuePair::getValue));
Otherwise you would have to loop through the elements
for(NameValuePair element : list) {
//logic to convert list entries to hash map entries
}
To get a better understanding, please take a look at this tutorial.
回答2:
You can use it for Java 8
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()));
}
And here's how you would use it on a List:
Map<Long, Product> productsById = toMapBy(products, Product::getId);
Follow the link:
- Converting ArrayList to HashMap
- Generic static method constrains types too much
- Java: How to convert List to Map
来源:https://stackoverflow.com/questions/35947858/how-to-convert-listnamevaluepair-into-a-hashmapstring-string