import java.util.*;
public class MapGoThrough {
public static void main(String[] args) {
Map<String, Integer> tempMap = new HashMap<>();
tempMap.put("a",12);
tempMap.put("b",34);
tempMap.put("c",56);
//JDK1.4中
//遍历方法一 hashmap entrySet()遍历
Iterator it=tempMap.entrySet().iterator();
while (it.hasNext()){
Map.Entry entry=(Map.Entry) it.next();
Object key=entry.getKey();
Object value=entry.getValue();
System.out.println("key="+key+" value="+value);
}
System.out.println("+++++++++++++++++++++++++++++++");
//JDK1.5中,应用新特性For-Each循环
//遍历方法二
for (Map.Entry<String,Integer> entry:tempMap.entrySet()){
String key=entry.getKey().toString();
String value=entry.getValue().toString();
System.out.println("key="+key+" value="+value);
}
System.out.println("+++++++++++++++++++++++++++++++++++");
//遍历方法三 hashMap keySet()遍历
for (Iterator i=tempMap.keySet().iterator();i.hasNext();) {
Object obj = i.next();
System.out.println(obj);
System.out.println("key="+obj+" value="+tempMap.get(obj));
}
for (Iterator i=tempMap.values().iterator();i.hasNext();){
Object obj=i.next();
System.out.println(obj);//循环输出value
}
//遍历方法四 treemap keySet()遍历
for (Object o:tempMap.keySet()){
System.out.println("key="+o+" value="+tempMap.get(o));
}
System.out.println("+++++++++++++++++++++++++++++++++++++");
//java如何遍历Map<String,ArrayList> map=new HashMap<String, ArrayList>();
System.out.println("java 遍历Map<String,ArrayList> map=new HashMap<String,ArrayList>();");
Map<String,ArrayList> map=new HashMap<>();
Set<String> keys=map.keySet();
Iterator<String> iterator=keys.iterator();
while (iterator.hasNext()){
String key=iterator.next();
ArrayList arrayList=map.get(key);
for (Object o:arrayList){
System.out.println(0);
}
}
Map<String,List> maptest=new HashMap<>();
for (Map.Entry entry:map.entrySet()){
String key=entry.getKey().toString();
List<String> list=(List)entry.getValue();
for (String value:list){
System.out.println(key+"=============="+value);
}
}
}
}
keySet是键的集合,Set里面的类型即key的类型
entrySet是键-值对的集合,Set里面的类型是Map.Entry
Entry是一个键-值对
keySet():迭代后只能通过get()取key
entrySet():迭代后可以e.getKey(),e.getValue()取key和value。返回的是Entry接口
keySet()的速度比entrySet慢了很多,也就是keySet方式遍历Map的性能不如entrySet性能好。为了提供性能,以后多考虑用entrySet()方式来进行遍历