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);
      }
     }

     
  • 相关阅读:
    WinCE 测试网速
    YII 关联表查询
    YII CMenu配置
    php扩展开发笔记1
    使用Mysql EXPLAIN分析、优化SQL语句
    使用Mysql EXPLAIN分析、优化SQL语句 (续)
    jquery提交中文导致乱码
    *nix 命令记(持续更新)
    php 函数中使用static
    xmlhttprequest获取TransferEncoding:chunked分时编码输出
  • 原文地址:https://www.cnblogs.com/xubiao/p/5405981.html
Copyright © 2011-2022 走看看