import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
public class MapDemo {
public static void main(String[] args) {
Map<Integer, String> map = new HashMap<Integer, String>();
map.put(1, "小明");
map.put(2, "子怡");
map.put(3, "劉備");
map.put(5, "元彪");
// key2Value(map);
kvIterator(map);
}
/**遍歷方式二:
* 通過KV的方式遍歷map集合,先得到KV鍵值對
* 再遍歷鍵值對,成對出現,最後通過對應的getKey()和getValue();獲取對應的
* 鍵K和值V
* @param map 要遍歷的集合
*/
private static void kvIterator(Map<Integer, String> map) {
// 鍵值對 K V
Set<Entry<Integer, String>> entrySet = map.entrySet();
System.out.println(entrySet);// [1=小明, 2=子怡, 3=劉備, 5=元彪]
Iterator<Entry<Integer, String>> ite = entrySet.iterator();
while (ite.hasNext()) {
// K V
Entry<Integer, String> kv = ite.next();
Integer key = kv.getKey();
String value = kv.getValue();
System.out.println(key + " " + value);
}
}
/**遍歷方式一
* 根據鍵取值
* 先獲得所有的鍵集合,再通過遍歷鍵集合,得到每個鍵K
* 最後根據鍵K去查找對應的值V
* @param map
*/
private static void key2Value(Map<Integer, String> map) {
//鍵取值的遍歷方式
Set<Integer> keySet = map.keySet();//獲取所有的鍵
System.out.println(keySet);
Iterator<Integer> key = keySet.iterator();
while (key.hasNext()) {//遍歷每個鍵
//根據鍵來獲取值。
String value = map.get(key.next());
System.out.print(value);
}
}
}
高級for遍歷兩種:
//鍵找值
Set<Student> keySet = map.keySet();//key
for (Student key : keySet) {//獲取每個key
//根據鍵找到值
String value = map.get(key);
System.out.println(key.toString()+" "+value);
}
//鍵值對遍歷
Set<Entry<Student, String>> entrySet = map.entrySet();
for (Entry<Student, String> entry : entrySet) {
System.out.println(entry.getKey()+" "+entry.getValue());
}