遍歷map的3種方式
-
keySet得到存有key的Set集合
-
集合遍歷
-
迭代器遍歷
-
-
entrySet得到存有Map.Entry的Set集合
-
集合遍歷
-
迭代器遍歷
-
-
map.values得到存有value的Collection集合 只能遍歷value
-
集合遍歷
-
迭代器遍歷
-
package July.map;
import org.junit.Test;
import java.util.*;
public class hx1 {
//遍歷map的4種方式
@Test
public void test1(){
HashMap<Integer,String> map = new HashMap();
map.put(1,"abc");
map.put(2,"def");
map.put(3,"ghi");
//1 通過keySet得到key遍歷
System.out.println("-----------------------1:keySet得到Set集合,集合中元素類型爲key的類型-------------------------");
System.out.println("1.1:集合遍歷");
for (Object key: map.keySet()) {
System.out.println(key.toString()+map.get(key));
}
System.out.println("1.2:迭代器遍歷");
Iterator<Integer> iterator = map.keySet().iterator();
while(iterator.hasNext()){
Integer key = iterator.next();
System.out.println(key+map.get(key));
}
//2 通過entrySet得到Set集合,集合裏的類型是Map.Entry<k,v>。所以也可以說通過entrySet得到entry 推薦★
System.out.println("-----------------------2:entrySet得到Set集合,集合中元素類型爲Map.Entry<k,v>的類型-------------------------");
//map.entrySet()得到一個set集合,裏面裝的元素是Map.Entry類型的 entry是包含了key,value的
/*Set<Map.Entry<Integer,String>> set2 = map.entrySet();
System.out.println(set2);
Iterator<Map.Entry<Integer,String>> it2 = set2.iterator();
Map.Entry<Integer,String> o = it2.next();
System.out.println(o.getKey()+o.getValue());*/
System.out.println("2.1:集合遍歷");
for (Map.Entry<Integer,String> m:map.entrySet()) {
System.out.println(m.getKey()+m.getValue());
}
System.out.println("2.2:迭代器遍歷");
Iterator<Map.Entry<Integer,String>> it = map.entrySet().iterator();
while(it.hasNext()){
Map.Entry<Integer,String> entry = it.next();
System.out.println(entry.getKey()+entry.getValue());
}
//4 通過map.values得到values遍歷value
System.out.println("-----------------------3:values得到Collection集合,集合元素類型爲value的類型-------------------------");
System.out.println("3.1:集合遍歷");
for (String v:map.values()) {
System.out.println(v);
}
System.out.println("3.2:迭代器遍歷");
Iterator<String> itvalue = map.values().iterator();
while (itvalue.hasNext()){
System.out.println(itvalue.next());
}
}
}