首页 > 代码库 > java 18 - 8 HashMap和ArrayList的嵌套2

java 18 - 8 HashMap和ArrayList的嵌套2

 

数据乱扯的
结果:
  小说
    三大名著
           三国演义
              吕布    30
              赵云    28
           西游记
              孙悟空   600
              唐僧     30
    武侠小说
           笑傲江湖
              令狐冲    26
              林平之    28
          神雕侠侣
              郭靖      40
              杨过    23


  分析:
    总的集合是      HashMap<String,HashMaP<String,ArrayList<Person>>>,
      子集合:HashMaP<String,ArrayList<Person>>   ArrayList<Person>

 

 

 1 package zl_MapDemo; 2  3 import java.util.ArrayList; 4 import java.util.HashMap; 5 import java.util.Set; 6 public class HashMapDemo { 7  8     public static void main(String[] args) { 9         10         //创建总集合小说11         HashMap<String,HashMap<String,ArrayList<Person>>> hm1 = 12                 new  HashMap<String,HashMap<String,ArrayList<Person>>>();13         14         //创建三大名著子集合15         HashMap<String,ArrayList<Person>> hm2 = new HashMap<String,ArrayList<Person>>();16         //创建三国演义集合17         ArrayList<Person> list1 = new ArrayList<Person>();18         //创建西游记集合19         ArrayList<Person> list2 = new ArrayList<Person>();20         21         //创建三国演义和西游记集合的元素22         Person p1 = new Person ("吕布",30);23         Person p2 = new Person ("赵云",28);24         Person p3 = new Person ("孙悟空",600);25         Person p4 = new Person ("唐僧",26);26         27         //把元素添加到三国演义和西游记的集合中28         list1.add(p1);29         list1.add(p2);30         list2.add(p3);31         list2.add(p4);32         33         //把三国演义和西游记集合添加到三大名著集合中34         hm2.put("三国演义", list1);35         hm2.put("西游记", list2);36         37         //再把三大名著集合添加到小说集合中38         hm1.put("三大名著", hm2);39         40         //创建武侠小说集合41         HashMap<String,ArrayList<Person>> wxhm = new HashMap<String,ArrayList<Person>>();42         43         //创建笑傲江湖和神雕侠侣集合44         ArrayList<Person> array1 = new ArrayList<Person>();45         ArrayList<Person> array2 = new ArrayList<Person>();46 47         //创建笑傲江湖和神雕侠侣集合的元素48         Person s1 = new Person("令狐冲",26);49         Person s2 = new Person("林平之",28);50         Person s3 = new Person("郭靖",40);51         Person s4 = new Person("杨过  ",23);52         53         //把这些元素分别添加到两个集合中54         array1.add(s1);55         array1.add(s2);56         array2.add(s3);57         array2.add(s4);58         59         //把两个集合添加到武侠小说集合中60         wxhm.put("笑傲江湖", array1);61         wxhm.put("神雕侠侣", array2);62         63         //把武侠小说集合添加到小说集合中64         hm1.put("武侠小说", wxhm);65         66         //遍历67         68         //获取小说集合的键集合69         Set<String> hm1Set = hm1.keySet();70         //遍历71         for(String hm1key : hm1Set){72             //小说集合的值是HashMap<String,ArrayList<Person>>73             HashMap<String,ArrayList<Person>> xsvalue=http://www.mamicode.com/ hm1.get(hm1key);74             //创建三大名著和武侠小说这个集合的键集合75             Set<String> xsSet = xsvalue.keySet();76             //遍历77             for(String xskey : xsSet){78                 System.out.println(xskey);79             //这个集合的值是ArrayList<Person>80             ArrayList<Person> value =http://www.mamicode.com/ xsvalue.get(xskey);81             82             //遍历ArrayList集合83             for(Person result : value){84                 System.out.println("\t "+result.getName()+"\t"+result.getAge());85             }86         }87         }88     }89 90 }

 

java 18 - 8 HashMap和ArrayList的嵌套2