zoukankan      html  css  js  c++  java
  • 在map中一个key中存多个值

    一说到map都想到key-value键值队存在。key可以为最多一个null的key。

    今天开发中一个业务需求,在map中一个key中存多个对象。

    我首先想到Map<String,List>造型来解决。尤其是那种一对多的可以这么设计。

    Map<String,List> map = new HashMap<String,List>();//模型就是这么个。

    for(int i=0;i<listObj.size();i++){

       key = listObj.getId(); --可以任何值

       value = listObj.get(i); --

       if(map.containsKey(key)){

      map.get(key).add(value);        
      } 
      else{
      List vals = new ArrayList();
      vals.add(value);
      map.put(key,vals)
      }

    }

    写到这里,必须要说哈遍历map的常用方法了。经常在用,但是还是要总结才能进步。
      Map<String, String> map = new HashMap<String, String>();
      map.put("1", "value1");
      map.put("2", "value2");
      map.put("3", "value3");
      
      //第一种:普遍使用,二次取值
      System.out.println("通过Map.keySet遍历key和value:");
      for (String key : map.keySet()) {
       System.out.println("key= "+ key + " and value= " + map.get(key));
      }
      
      //第二种
      System.out.println("通过Map.entrySet使用iterator遍历key和value:");
      Iterator<Map.Entry<String, String>> it = map.entrySet().iterator();
      while (it.hasNext()) {
       Map.Entry<String, String> entry = it.next();
       System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());
      }
      
      //第三种:推荐,尤其是容量大时
      System.out.println("通过Map.entrySet遍历key和value");
      for (Map.Entry<String, String> entry : map.entrySet()) {
       System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());
      }

      //第四种
      System.out.println("通过Map.values()遍历所有的value,但不能遍历key");
      for (String v : map.values()) {
       System.out.println("value= " + v);
      }
     }

  • 相关阅读:
    做过的项目介绍
    我在爱板网写的-- 【望月追忆】带你入门STM32F0系列文章
    注释:佛祖保佑--永无BUG
    【项目】----C/C++语法知识:typedef struct 用法详解
    【神舟王】----PCB 数字地 和 模拟地 处理方法
    NSDateFormatter的常用格式和格式化参数
    IOS常用开发第三方库整理
    iOS上如何让按钮文本左对齐问题(对齐方式)
    Swift学习5---协议(protocol)和扩展(extension)
    Swift学习4---枚举和结构体
  • 原文地址:https://www.cnblogs.com/mike-mei/p/12534768.html
Copyright © 2011-2022 走看看