前面描述了一部分集合的嵌套,再次再次用例子来说明集合嵌套的写法和原理:
package HashMap_Include;
import java.util.HashMap;
import java.util.Set;
/*需求:得知性别,来寻找一个人的姓名和年龄
* HashMap集合嵌套HashMap
* 分析:将一个HashMap当做另一个HashMap的集合元素来处理
* 相当于建立一个大集合,一个小集合,被嵌套的则为小集合
* 在添加元素的过程中,先向小集合中添加元素,然后再通过小集合添加到大集合中
* 而遍历则相反,先遍历大集合,即外层遍历,再遍历小集合,即内层遍历
* 下面举例说明
* */
public class HashMap_Include_HashMap {
public static void main(String[] args) {
// 创建集合集合嵌套
HashMap<String, HashMap<String, Integer>> map = new HashMap<String, HashMap<String, Integer>>();
//创建第一个小集合HashMap
HashMap<String,Integer>map1 = new HashMap<String,Integer>();
//向map1集合中放入元素
map1.put("张三", 28);
map1.put("李四", 18);
//将第一个小集合的元素和加入到大集合中
map.put("男性",map1 );
// System.out.println(map);
//创建第二个小集合map2
HashMap<String,Integer>map2 = new HashMap<String,Integer>();
//向map2中添加元素
map2.put("丽丽", 25);
map2.put("翠翠", 26);
//将第二个小集合放入大集合中
map.put("女性",map2);
//遍历
//先遍历大集合
Set<String>set = map.keySet();
for(String Key : set){
//通过键找值
HashMap<String, Integer> Value = map.get(Key);
// System.out.println(Key+"----"+Value); 输出:男性----{李四=18, 张三=28}
// 女性----{丽丽=25, 翠翠=26}
//通过键获取值(HashMap)
HashMap<String,Integer>map3 = map.get(Key);
//获取所有键的集合
Set<String> mapSetKeyValueKey = map3.keySet() ;
for(String mapSetKeyValueKeyKey :mapSetKeyValueKey) {
Integer mapSetKeyValueKeyKeyValue = map3.get(mapSetKeyValueKeyKey) ;
//输出所有键值对
System.out.println("\t"+mapSetKeyValueKeyKey+"---"+mapSetKeyValueKeyKeyValue);
/*输出: 李四---18
张三---28
丽丽---25
翠翠---26
*
* */
}
}
}
}