主要介绍HashMap的四种循环遍历方式
第一种通过获取所有的Key 来获取value
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
public class showMap {
public static void main(String[] args) {
HashMap<Integer,String> hashMap = new HashMap();
hashMap.put(1,"zhangsan");
hashMap.put(2,"lisi");
hashMap.put(3,"wangwu");
hashMap.put(4,"zhaoliu");
hashMap.put(5,"lf");
//第一种方式获取所有的key ,通过所有的key获value
Set<Integer> keys = hashMap.keySet();
//然后使用迭代器
Iterator<Integer> iterator = keys.iterator();
while(iterator.hasNext()) {
Integer key = iterator.next();
//通过key 来获取value
String value = hashMap.get(key);
}
//使用foreach
for (Integer key : keys) {
hashMap.get(key);
}
}
}
第二种通过hashMap.entrySet()
当然这里可以看一下Map.Entry的源码
static class Node<K,V> implements Map.Entry<K,V> {
final int hash;
final K key;
V value;
Node<K,V> next;
其实Entry里面存放是是一个Node类型的节点
package map;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
/**
* @author 李峰
* @version V1.0
* @Package map
* @description map集合的遍历方式
* @date 2021-04-16 21:03
*/
public class showMap {
public static void main(String[] args) {
HashMap<Integer,String> hashMap = new HashMap();
hashMap.put(1,"zhangsan");
hashMap.put(2,"lisi");
hashMap.put(3,"wangwu");
hashMap.put(4,"zhaoliu");
hashMap.put(5,"lf");
//第二种通过调用hashMap.entrySet() 返回一个set集合
//集合中存的数Entry类型的对象
Set<Map.Entry<Integer, String>> entrieSet = hashMap.entrySet();
//然后使用迭代器遍历set集合
Iterator<Map.Entry<Integer, String>> iterator1 = entrieSet.iterator();
while(iterator1.hasNext()) {
//获取到的是一个个Entry对象
Map.Entry<Integer, String> next = iterator1.next();
//然后调用getKey 和 getValue 方法 获取key 和 value
Integer key = next.getKey();
String value = next.getValue();
}
//使用foreach 遍历
for (Map.Entry<Integer, String> entrys : entrieSet) {
Integer key = entrys.getKey();
String value = entrys.getValue();
}
}
}