mport java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
public class MapTest {
public static void main(String[] args) {
Map<String, Student> map = new HashMap<String, Student>();
Student s1 = new Student("许文强", 20);
Student s2 = new Student("丁力", 30);
Student s3 = new Student("冯程程", 25);
map.put("sh002", s1);
map.put("sh003", s2);
map.put("sh001", s3);
Set<String> keySet = map.keySet(); //Map集合和Set集合本身是没有关系,但是你要遍历Map集合中存入的数据就用到迭代器,在你查API文档时发现Map集合中并没有迭代器,那这时候怎么办呢。Map中提供了KeySet()方法和entrySet()方法建立桥梁和Set就有关系,就是为了拿到Set集合中的Iterrator迭代器,遍历Map中的数据。还可以这样理解,就是Map集合中没有迭代去,那怎么遍历呢?,想到Set集合有Iterator迭代器,那就要想办法把Map集合转变成Set集合,而这个办法就使用Map中KeySet()方法和entrySet()方法,转变后再用Iterator遍历集合中数据。
你只要记住,遍历Map集合中的数据用到迭代器就通过KeySet()方法和entrySet()方法获取,再遍历
Iterator<String> it = keySet.iterator();
while (it.hasNext()) {
String key = it.next();
Student value = map.get(key);
System.out.println(key + "***" + value.getName() + "***"
+ value.getAge());
}
System.out.println("*******************");
Set<Map.Entry<String, Student>> setMap = map.entrySet();
Iterator<Map.Entry<String, Student>> it2 = setMap.iterator();
while (it2.hasNext()) {
Map.Entry<String, Student> me = it2.next();
String key = me.getKey();
Student value = me.getValue();
System.out.println(key + "***" + value.getName() + "***"
+ value.getAge());
}
}
}
|