首页 > 其他 > 详细

在map中一个key中存多个值

时间:2020-03-20 21:11:55      阅读:181      评论:0      收藏:0      [点我收藏+]

一说到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);
  }
 }

在map中一个key中存多个值

原文:https://www.cnblogs.com/mike-mei/p/12534768.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!