Map<String, String> map = new HashMap<>(); for(int i=0;i<5000000;i++){ map.put("key"+i,"value"+i); } //第一种:普遍使用,二次取值 String startTime= DateUtil.getNowDateString(); for (String key : map.keySet()) { log.debug("方式一: ke y= "+key+" , value= "+map.get(key)); } String endTime=DateUtil.getNowDateString(); log.info("方式一: 遍历开始时间是:startTime="+startTime+",结束时间是:endTime="+endTime); //通过Map.entrySet使用iterator遍历key和value startTime= DateUtil.getNowDateString(); Iterator<Map.Entry<String, String>> iterator = map.entrySet().iterator(); while (iterator.hasNext()) { Map.Entry<String, String> entry = iterator.next(); log.debug("方式二: key = " + entry.getKey() + " , value= " + entry.getValue()); } endTime=DateUtil.getNowDateString(); log.info("方式二: 遍历开始时间是:startTime="+startTime+",结束时间是:endTime="+endTime); //第三种:推荐,尤其是容量大时 "通过Map.entrySet遍历key和value startTime= DateUtil.getNowDateString(); for (Map.Entry<String, String> entry : map.entrySet()) { log.debug("方式三: key= " + entry.getKey() + " , value= " + entry.getValue()); } endTime=DateUtil.getNowDateString(); log.info("方式三: 遍历开始时间是:startTime="+startTime+",结束时间是:endTime="+endTime); //第四种 通过Map.values()遍历所有的value,但不能遍历key startTime= DateUtil.getNowDateString(); for (String v : map.values()) { log.debug("方式四: value= " + v); } endTime=DateUtil.getNowDateString(); log.info("方式四: 遍历开始时间是:startTime="+startTime+",结束时间是:endTime="+endTime);
遍历Map的四种方法
最新推荐文章于 2025-01-21 10:30:36 发布