Map的迭代以及性能对比
上三篇文章分析了三种Map的数据结构和增加删除操作。
HashMap是基于 数组 + 单向链表的数据结构,通过hash算法算出Index位置,如果没有旧元素直接存储,如果有,则进行hashCode比较和equals比较,如果一样覆盖久值,不一致则链表链接下一个元素。
LinkedHashMap是基于 数组 + 单向链表的数据结构,并且又维护了一个双向链表来保证元素的有序。排序规则为使用次数排序和添加顺序排序。
TreeMap是基于平衡二叉树的数据结构。
这次我们来看下Map的迭代操作。
package com.evan.hash_map;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
public class Demo {
public static void main(String[] args) {
Map<Integer, String> map = new HashMap<Integer, String>();
map.put(0, "张三");
map.put(1, "李四");
map.put(2, "王五");
map.put(3, "赵六");
//第一种,利用KeySet的迭代器,获取Value
Set<Integer> keySet = map.keySet();
Iterator<Integer> iterator = keySet.iterator();
while(iterator.hasNext()) {