当前位置:   article > 正文

MultiValueMap的循环读取操作_multivaluemap

multivaluemap

平时比较少接触MultiValueMap。昨天看到了一行代码:

MultiValueMap<String, Object> param = new LinkedMultiValueMap<>();

一时间,技痒难耐。

根据百度的各位吃瓜群众的解释:MultiValueMap 是一个Key后面存值的方式是链表方式存在的。

简单说,就是一个Key里面可以Add多个值,不会被覆盖。

举个锤子:

  1. param.add("phone", "111");
  2. param.add("phone", "222");

如果是Map形式存储 的话,key =  phone的键值应该是“222”。

如果使用的是MultiValueMap。你可以简单理解为 phone的键值是["111","222"]。说明下,这个数据类型是List不是数组。这里只是简单描述存值。

作为MultiValueMap存值很方便,取值的时候咋办呢?

下面上个简单的循环读取方式(用了for嵌套),您可以试下,在小范围内用的话,应该还是可以的。

上一下测试代码:

  1. @Test
  2. public void testMultiValueMap() {
  3. MultiValueMap<String, String> param = new LinkedMultiValueMap<>();
  4. param.add("phone", "111");
  5. param.add("phone", "222");
  6. param.add("temp_id", "temp_id1");
  7. param.add("param","param");
  8. param.add("param","param2");
  9. param.add("temp_id", "temp_id2");
  10. param.add("phone", "333");
  11. param.add("param","param3");
  12. System.out.println("======== 我是邪恶的分界线 ===========");
  13. for (String key : param.keySet()) {
  14. List<String> values = ((LinkedMultiValueMap<String, String>) param).get(key);
  15. System.out.println("key : "+key);
  16. for (String value : Objects.requireNonNull(values)) {
  17. System.out.println( "value: " + value);
  18. }
  19. }
  20. }

输出结果如下所示:

基本上将所有的key和key值都进行了输出。

中间您可以根据需要加上您复杂的、晦涩的、难懂的逻辑代码了。

下面,请开始您的表演!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/392424
推荐阅读
相关标签
  

闽ICP备14008679号