/**
* aa00aa00
*/
package com.map.test;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
public class MapTest {
public static void main(String[] args) {
// 遍历map
Map<String, List<User>> map = new HashMap<String, List<User>>();
List<User> list1 = new ArrayList<User>();
String[] str = { "01", "02", "03" };
User user1 = new User("01", "001", "mapqincy1", 24);
User user2 = new User("01", "002", "mapqincy2", 25);
User user3 = new User("01", "003", "mapqincy3", 26);
list1.add(user1);
list1.add(user2);
list1.add(user3);
map.put(str[0], list1);
List<User> list2 = new ArrayList<User>();
User user11 = new User("02", "004", "map1qincy1", 24);
User user12 = new User("02", "005", "map2qincy2", 25);
list2.add(user11);
list2.add(user12);
map.put(str[1], list2);
List<User> list3 = new ArrayList<User>();
User user22 = new User("03", "005", "ddd", 34);
User user23 = new User("03", "006", "eee", 35);
User user24 = new User("03", "007", "fff", 36);
list3.add(user22);
list3.add(user23);
list3.add(user24);
map.put(str[2], list3);
// 得到map所有key值,放到set集合中
Set set = map.keySet();
// 对Set集合进行遍历循环
Iterator<String> iterator = set.iterator();
// 进行循环遍历
while (iterator.hasNext()) {
String key = iterator.next();// 将获取的键引用进行强制类型转换
List<User> list = new ArrayList<User>();
list = map.get(key);// 通过键获取相应的值
Iterator<User> it = list.iterator();
while (it.hasNext()) {
User user = new User();
user = it.next();
// System.out.println(key + "键:" + user.getNumber() + "值:学号"
// + user.getXh() + "姓名" + user.getName() + "年龄"
// + user.getAge());// 打印键、值的情况
}
}
// 准备数据
Map<String, User> maptest = new HashMap<String, User>();
User user31 = new User("03", "005", "ddd", 34);
User user32 = new User("03", "006", "eee", 35);
User user33 = new User("03", "007", "fff", 36);
maptest.put("1001", user31);
maptest.put("1002", user32);
maptest.put("1003", user33);
Map<String, User> subMap = new HashMap<String, User>();
subMap.put("1008", new User("tom", "1008", "fdf", 12));
subMap.put("1009", new User("jerry", "1009", "dfdf", 10));
maptest.putAll(subMap);
workByEntry(maptest);
workByEntry1(maptest);
}
// 使用Map.Entry遍历map
public static void workByEntry(Map<String, User> map) {
// Set<Map.Entry<String, User>> set = map.entrySet();
// for (Iterator<Map.Entry<String, User>> it = set.iterator(); it
// .hasNext();) {
// Map.Entry<String, User> entry = (Map.Entry<String, User>) it.next();
// System.out.println(entry.getKey() + "键:"
// + entry.getValue().getNumber() + "值:学号"
// + entry.getValue().getXh() + "姓名"
// + entry.getValue().getName() + "年龄"
// + entry.getValue().getAge());// 打印键、值的情况
}
// 使用keySet遍历map
public static void workByEntry1(Map<String, User> map) {
Set set = map.keySet();
// 对Set集合进行遍历循环
Iterator<String> iterator = set.iterator();
while (iterator.hasNext()) {
String key = iterator.next();
User user = map.get(key);
System.out.println(key + "键值:" + user.getNumber() + "学号"
+ user.getXh() + "姓名" + user.getName() + "年龄"
+ user.getAge());// 打印键、值的情况
}
}
}