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());
}