Map 的四种遍历方式

您所在的位置:网站首页 增强for循环遍历map Map 的四种遍历方式

Map 的四种遍历方式

2024-07-12 03:07| 来源: 网络整理| 查看: 265

初始化和增删改查的实现 1.初始化 Map map = new HashMap(); 2.加元素 map.put(key,value) 3.删除元素 map.remove(key); 4.查元素 map,get(key); 5.清空元素 map.clear() 遍历 1.增强型for循环遍历 使用keySet()遍历 for(String key : map.keySet()) { System,out,println(key+":"+map.get(key)); } 使用entrySet()遍历 for(Map.EntrySet entry : map.entrySet()) { System,out,println(entry.getKey()+":"+entry.getValue()); } 2.迭代器遍历 使用keySet()遍历 Iterator it =map.keySet().Iterator(); while(it.hasNext()) { String key = it.next(); System.out.println(key+":"+map.get(key)); } 使用entrySet()进行遍历 Iterator it = map.entrySet().iterator(); while(it.hasNext()) { Map entry = it.next(); System.out.println(entry.getKey()+":"+entry.getValue()); } 测试代码 import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Map.Entry;

public class TestMap {

public static void main(String[] args) { // 初始化,10W次赋值 Map map = new HashMap(); for (int i = 0; i < 100000; i++) map.put(i, i); /** 增强for循环,keySet迭代 */ long start = System.currentTimeMillis(); for (Integer key : map.keySet()) { map.get(key); } long end = System.currentTimeMillis(); System.out.println("增强for循环,keySet迭代 -> " + (end - start) + " ms"); /** 增强for循环,entrySet迭代 */ start = System.currentTimeMillis(); for (Entry entry : map.entrySet()) { entry.getKey(); entry.getValue(); } end = System.currentTimeMillis(); System.out.println("增强for循环,entrySet迭代 -> " + (end - start) + " ms"); /** 迭代器,keySet迭代 */ start = System.currentTimeMillis(); Iterator iterator = map.keySet().iterator(); Integer key; while (iterator.hasNext()) { key = iterator.next(); map.get(key); } end = System.currentTimeMillis(); System.out.println("迭代器,keySet迭代 -> " + (end - start) + " ms"); /** 迭代器,entrySet迭代 */ start = System.currentTimeMillis(); Iterator iterator1 = map.entrySet().iterator(); Map.Entry entry; while (iterator1.hasNext()) { entry = iterator1.next(); entry.getKey(); entry.getValue(); } end = System.currentTimeMillis(); System.out.println("迭代器,entrySet迭代 -> " + (end - start) + " ms"); }

} 结果: 增强for循环,keySet迭代 -> 13 ms 增强for循环,entrySet迭代 -> 8 ms 迭代器,keySet迭代 -> 10 ms 迭代器,entrySet迭代 -> 6 ms entrySet比keySet快的原因是:entrySet直接返回了key和value的对应关系对,而keySet需要再去Map中查找一次. 参考:https://www.cnblogs.com/lzq198754/p/5780165.html



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3