MultiValueMap 屬於springframework中的map,繼承Map
package org.springframework.util;
import java.util.List;
import java.util.Map;
public interface MultiValueMap<K, V> extends Map<K, List<V>> {
V getFirst(K var1);
void add(K var1, V var2);
void set(K var1, V var2);
void setAll(Map<K, V> var1);
Map<K, V> toSingleValueMap();
}
它有什麼作用呢:
jdk裏的hashmap中存儲key ,value都是一個key 對應一個value,如果重複put相同key的value,就會覆蓋以前的value.
而MultiValueMap則針對相同的key 會存儲成一個鏈表形式。
它的實現:
MultiValueMap<String, String> mvm = new LinkedMultiValueMap<>();
Map<String, String> params = new HashMap<>();
params.put("a", "a1");
params.put("a", "a2");
params.put("b", "b");
MultiValueMap<String, String> mvm = new LinkedMultiValueMap<>();
params.forEach(mvm::add);
// 遍歷
Set<String> set = params.keySet();
for (String key : keySet) {
List<String> values = stringMultiValueMap.get(key);
System.out.println(StringUtils.join(values.toArray()," ")+":"+key);
}
結果爲: a1,a2 :a
b:b