初识集合框架2-Map

学习笔记21

集合框架2-Map集合

集合框架
1.Map集合概念:
Map<K,V>map集合是双列集合,存储“键”和“值”,键值一一对应,键是唯一的不可以重复,而值是可以重复的。
2.Map集合的遍历:
2.1 KeySet遍历Map集合

 HashMap<String,String> hashMap=new HashMap<>();
 hashMap.put("一","1");
 hashMap.put("二","2");
 hashMap.put("三","3");
 hashMap.put("四","4");
  • 2.1.1 增强for循环遍历Map集合
//遍历
Set keys = hashMap.keySet();   //键集
     for (String key:keys) {
         System.out.println(key+"--"+hashMap.get(key));
      }
  • 2.1.2 迭代器遍历Map集合
Iterator<String> it=keys.iterator();
while(it.hasNext()){
    String key = it.next();
    System.out.println(key+"-"+hashMap.get(key));
    }

2.2 entrySet遍历Map集合

  • 2.2.1 增强for循环遍历
 Set<Map.Entry<String, String>> entries = hashMap.entrySet();
 for (Map.Entry<String, String> en:entries) {
      System.out.println(en.getKey()+" "+en.getValue());
       // System.out.println(en);
 }
  • 2.2.2 迭代器遍历
Iterator<Map.Entry<String,String>> it=keysValues.iterator();
while(it.hasNext()){
    Map.Entry<String, String> en = it.next();
    System.out.println(en.getKey()+"-"+en.getValue());
    //System.out.println(en);
}

3.集合嵌套

  • 3.1 Map 嵌套Map
    题目要求:有两个班级“Java”,“C++”,每个班级都有学生,添加学生信息,并遍历输出每个班级额学生信息。
        HashMap<Integer,String>stu=new HashMap<>();
        stu.put(1001,"张三");
        stu.put(1002,"张d");
        stu.put(1003,"张s");
        //有两个班级,每个班级的学生一样。
        HashMap<String,HashMap<Integer,String>>cla=new HashMap<>();
        cla.put("Java",stu);
        cla.put("C++",stu);
        //遍历所有班级
        for(String key:cla.keySet()){
        //    System.out.println(key);
            System.out.println("班级:"+key);
            //遍历每个班级的所有学生
            for(Integer k:cla.get(key).keySet()){
                System.out.println(k+"-"+cla.get(key).get(k));
            }
        }
  • 3.2 Map 嵌套List
public class Student {
    private int no;
    private String name;

    public Student(int no, String name) {
        this.no = no;
        this.name = name;
    }

    @Override
    public String toString() {
        return "Student{" +
                "no=" + no +
                ", name='" + name + '\'' +
                '}';
    }
}
public class Test {
    public static void main(String[] args) {
        ArrayList<Student>stu=new ArrayList<>();
        stu.add(new Student(1001,"Jim"));
        stu.add(new Student(1002,"Tom"));
        stu.add(new Student(1003,"Jack"));

        HashMap<String,ArrayList<Student>>hashMap=new HashMap<>();
        hashMap.put("Java",stu);
        hashMap.put("C++",stu);

        //循环每个班级
        for (String key:hashMap.keySet()) {
            System.out.println(key+"班级学生:");
            //循环遍历每个班级学生
            for (Student s:hashMap.get(key)) {
                System.out.println(s);
            }
        }
    }

猜你喜欢

转载自blog.csdn.net/qq_44693194/article/details/91950854