import com.sun.org.apache.xerces.internal.impl.xpath.XPath;
//导入的包。
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
//创建的类。
public class zy {
//公共静态的主方法。
public static void main(String[] args){
//创建Map集合。让其子类HashMap进行实现。
Map<Integer,String> song = new HashMap<Integer, String>();
//添加集合元素。
song.put(101,"薛之谦");
song.put(102,"李荣浩");
song.put(103,"陈奕迅");
//创建集合。
Map<Integer,String> move = new HashMap<Integer, String>();
//添加集合元素。
move.put(101,"周星驰");
move.put(102,"李连杰");
move.put(103,"宋小宝");
//创建集合。(分组。)
//Map<String,"为分组名称的类型格式" Hashmap<Integer,String> 为上面集合元素的数据类型>
Map<String,HashMap<Integer,String>> yy = new HashMap<String, HashMap<Integer, String>>();
//(HashMap<Integer, String>) song为数据类型
// 这句话的意思就是相当于把所有的元素放到了yy这个集合里。
//歌唱明星和电影明星就是上面所谓的分组。
yy.put("歌唱明星", (HashMap<Integer, String>) song);
yy.put("电影明星", (HashMap<Integer, String>) move);
// System.out.println(song);
// System.out.println(yy);
//调用方法。
fun(yy);
}
//创建有参数的方法。(Map yy)
private static void fun(Map yy) {
//获取键值对。(key和value | Entry键值对的意思。 )
//我们要把从yy取出来的数据类型放到yySet里,所以yySet数据类型和yy的数据类型一致。
Set<Map.Entry<String,HashMap<Integer,String>>> yySet = yy.entrySet();
//写入增强型for循环。 创建条件为i:yyset,i在这里的意思是代表所有元素
//所以数据类型也是一致的。
for (Map.Entry<String,HashMap<Integer,String>>i:yySet){
//创建对象,取得yy的key值。
// i=>yySet=>yy 所以即为取得yy的key的值。
String yy1 = i.getKey();
//打印yy1取得的yy的key的值。
System.out.println(yy1);
//取得yy的value值。
HashMap<Integer, String> yy2 = i.getValue();
//获取键值对。(key和value | Entry键值对的意思。 )
Set<Map.Entry<Integer,String>> yy3 = yy2.entrySet();
//写入增强型for循环。 创建条件为i:yy3,b在这里的意思是代表所有元素
//之所以不用i是因为i 已经使用过了
//所以数据类型也是一致的。
//b==>yy3==>yy2==>yy1==>yySet==>yy
for (Map.Entry<Integer, String> b:yy3){
//取得整数类型的yy的key值。
int id = b.getKey();
//打印。
System.out.println("编号:"+id);
//取得字符串类型的yy的value值。
String name = b.getValue();
//打印。
System.out.println("姓名:"+name);
}
}
}
}