当前位置:   article > 正文

Java中集合的嵌套:嵌套集合、嵌套keySet遍历、嵌套entrySet遍历_集合的嵌套遍历

集合的嵌套遍历

一、嵌套集合

1、ArrayList嵌套 ArrayList

  • ArrayList< ArrayList<String> >
  • Collection< ArrayList<Integer> >

2、Map嵌套 ArrayList

  • HashMap<String, ArrayList<Person>>
  • ArrayList< HashMap<String, String>>

3、Map集合嵌套

  • HashMap<String, HashMap<String,String>>

  • HashMap<String, HashMap<Person,String>>

4、代码实例

  • Map 集合嵌套keySet遍历
  1. public static void main(String[] args)
  2. {
  3. /**
  4. * 在学生中有男孩和女孩,而男孩和女孩都有自己的编号和姓名
  5. * 这里将学生存储到Map集合中,把男孩和女孩也存储到Map集合中
  6. * 再将男孩和女孩集合嵌套进学生集合
  7. */
  8. Map<Integer,String> boys = new HashMap<>();
  9. Map<Integer,String> girls = new HashMap<>();
  10. boys.put(1,"小明");
  11. boys.put(2,"小强");
  12. boys.put(3,"小龙");
  13. girls.put(1,"小小");
  14. girls.put(2,"小花");
  15. girls.put(3,"小佳");
  16. Map<Integer,Map<Integer,String>> Student = new HashMap<>();
  17. Student.put(1,boys);
  18. Student.put(2,girls);
  19. System.out.println(Student);
  20. //调用Student集合方法keySet将键存储到Set集合
  21. Set<Integer> S1 = Student.keySet();
  22. //迭代Set集合
  23. Iterator<Integer> Stu_it = S1.iterator();
  24. while (Stu_it.hasNext()) {
  25. //it.next获取出来的是Set集合元素,Student集合的键
  26. Integer Stu_key = Stu_it.next();
  27. //Student集合的方法get获取值,值是一个Map集合
  28. Map<Integer, String> Stu_value = Student.get(Stu_key);
  29. Set<Integer> S2 = Stu_value.keySet();
  30. Iterator<Integer> it = S2.iterator();
  31. while (it.hasNext()) {
  32. Integer key = it.next();
  33. String value = Stu_value.get(key);
  34. System.out.println(key + "=" + value);
  35. }
  36. }
  37. System.out.println("==================================");
  38. //使用增强for进行遍历
  39. for(Integer Stu__key : Student.keySet())
  40. {
  41. Map<Integer,String> Stu__value = Student.get(Stu__key);
  42. for (Integer key : Stu__value.keySet())
  43. {
  44. String value = Stu__value.get(key);
  45. System.out.println(key + "=" +value);
  46. }
  47. }
  48. }
  • Map 集合嵌套entrySet遍历
  1. public static void main(String[] args)
  2. {
  3. /**
  4. * 在学生中有男孩和女孩,而男孩和女孩都有自己的编号和姓名
  5. * 这里将学生存储到Map集合中,把男孩和女孩也存储到Map集合中
  6. * 再将男孩和女孩集合嵌套进学生集合
  7. */
  8. Map<Integer,String> boys = new HashMap<>();
  9. Map<Integer,String> girls = new HashMap<>();
  10. boys.put(1,"小明");
  11. boys.put(2,"小强");
  12. boys.put(3,"小龙");
  13. girls.put(1,"小小");
  14. girls.put(2,"小花");
  15. girls.put(3,"小佳");
  16. Map<Integer,Map<Integer,String>> Student = new HashMap<>();
  17. Student.put(1,boys);
  18. Student.put(2,girls);
  19. System.out.println(Student);
  20. //调用Student集合方法entrySet方法,将Student集合的键值对关系对象,存储到Set集合
  21. Set<Map.Entry<Integer,Map<Integer,String>>> Stu = Student.entrySet();
  22. //迭代器迭代Set集合
  23. Iterator<Map.Entry<Integer,Map<Integer,String>>> Stu_it = Stu.iterator();
  24. while (Stu_it.hasNext())
  25. {
  26. //Stu_it.next方法,取出的是Student集合的键值对关系对象
  27. Map.Entry<Integer, Map<Integer, String>> Stu_entry = Stu_it.next();
  28. Integer Stu_key = Stu_entry.getKey();
  29. Map<Integer,String> Stu_value = Stu_entry.getValue();
  30. System.out.println(Stu_key + "=" + Stu_value);
  31. //调用Person集合entrySet方法,键值对关系对象存储Set集合
  32. Set<Map.Entry<Integer,String>> S = Stu_value.entrySet();
  33. //迭代Set集合
  34. Iterator<Map.Entry<Integer,String>> it = S.iterator();
  35. while (it.hasNext())
  36. {
  37. //获取boys和girls中键值对对象并将其取出
  38. Map.Entry<Integer,String> entry = it.next();
  39. Integer key = entry.getKey();
  40. String value = entry.getValue();
  41. System.out.println(key + "="+ value);
  42. }
  43. }
  44. //使用增强for进行遍历
  45. for(Map.Entry<Integer, Map<Integer, String>> Stud : Student.entrySet())
  46. {
  47. Integer Stu__key = Stud.getKey();
  48. Map<Integer,String> Stu__value = Stud.getValue();
  49. System.out.println(Stu__key + "=" + Stu__value);
  50. for(Map.Entry<Integer,String> M : Stu__value.entrySet())
  51. {
  52. Integer key_ = M.getKey();
  53. String value_ = M.getValue();
  54. System.out.println(key_ + "=" + value_);
  55. }
  56. }
  57. }

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/489026
推荐阅读
相关标签
  

闽ICP备14008679号