即一个键对应多个值,Spring的内部实现是LinkedMultiValueMap

MultiValueMap接口

一键多值的使用场景是比较多的,在使用该数据结构之前,通常会自己定义

Map<K, List<V>>

可以使用该数据结构进行代替使用.

代码测试用例

public class LinkedMultiValueMapTests {

    private LinkedMultiValueMap<String, String> map;

    @Before
public void setUp() {
map = new LinkedMultiValueMap<String, String>();
} @Test
public void add() {
map.add("key", "value1");
map.add("key", "value2");
assertEquals(1, map.size());
List<String> expected = new ArrayList<String>(2);
expected.add("value1");
expected.add("value2");
assertEquals(expected, map.get("key"));
} @Test
public void getFirst() {
List<String> values = new ArrayList<String>(2);
values.add("value1");
values.add("value2");
map.put("key", values);
assertEquals("value1", map.getFirst("key"));
assertNull(map.getFirst("other"));
} @Test
public void set() {
map.set("key", "value1");
map.set("key", "value2");
assertEquals(1, map.size());
assertEquals(Collections.singletonList("value2"), map.get("key"));
} @Test
public void equals() {
map.set("key1", "value1");
assertEquals(map, map);
MultiValueMap<String, String> o1 = new LinkedMultiValueMap<String, String>();
o1.set("key1", "value1");
assertEquals(map, o1);
assertEquals(o1, map);
Map<String, List<String>> o2 = new HashMap<String, List<String>>();
o2.put("key1", Collections.singletonList("value1"));
assertEquals(map, o2);
assertEquals(o2, map);
}
}


调试看一下 内部数据结构,其内部是一个LinkedList

最新文章

  1. gulp教程之gulp-autoprefixer&lt;转&gt;
  2. 【android 开 发 】 - Android studio 下 NDK Jni 开发 简单例子
  3. java ide 导出可运行jar包
  4. Android(Xamarin)之旅(五)
  5. 在sqlServer中把数据导出为insert脚本
  6. PHP 5.4 中经 htmlspecialchars 转义后的中文字符串为空,DeDeCMS在PHP5.4下编辑器中文不显示问题
  7. 改变HTML
  8. Spring学习(一)——Spring中的依赖注入简介【转】
  9. 一起学CUDA(一)
  10. 通过spring来配置某个命令号和执行方法之间的映射
  11. web.cofing(新手必看)
  12. c++ 右值引用,move关键字
  13. Django之CRM项目Day6-公私户转换问题解决 班主任功能
  14. F#周报2019年第4期
  15. 洛谷 P1571 眼红的Medusa【二分查找】 || 【map】
  16. 如果让我重来,我会选择C和(或者)Python。
  17. C语言--第四周作业评分和总结(5班)
  18. multer详解
  19. AND Graph CodeForces - 987F(思维二进制dfs)
  20. Linux bash脚本及常用命令--不断更新中

热门文章

  1. Cnblogs 主题2
  2. JSP页面属性
  3. 实验1:SDN拓扑实践
  4. 从零入门 Serverless | 一文讲透 Serverless Kubernetes 容器服务
  5. .NET Core 基于Quartz的UI可视化操作组件 GZY.Quartz.MUI 简介
  6. 洛谷4755 Beautiful Pair (分治)
  7. Docker--harbor私有仓库部署与管理
  8. 初学python-day4 字典(已更新完)
  9. 【UE4 C++】 UDataAsset、UPrimaryDataAsset 的简单使用
  10. 力扣 - 剑指 Offer 53 - I. 在排序数组中查找数字 I