结合框架(二)

一,Map 双列集合

  概述:现实生活中会看到一种集合,用户名--密码,这种关系一一对应,叫做映射。Java中提供

       了专门的集合类用来存放这种关系----Java.util.Map

  特点:

    1,双列,一个元素包含两个值 key value

    2key,value 数据类型可相同也可不同

    3key 唯一不重复,value可重复

    4key value 一一对应

    5,无序的

 

二,HashMap

  Map的实现子类。底层也是通过哈希码表存储。方式是数组加链表形式。

  ★Map中没有获取迭代器的方法

    main方法中只能调用static 静态方法。

 

三,常用方法

  put(keyvalue);         添加键值对

  remove(key);       根据key移除对应对

  get(key);         根据key获取对应value

  containsKey(key);     判断是否包含指定键

  keySet(Map);       获取Map集合中所有key

  entrySet();         获取Map集合中的 Map.Entry<keyvalue>映射关系的Entry对象

 

四,遍历使用方法:

  1,通过k 获取 v

    1》使用Map集合中 keySet()方法;把Map-->key取出-->存储到一个Set集合中

    2》遍历Set集合-->获取Map集合中的键key

    3》通过Map集合-->getkey)方法获取相应值value

  2,用过Entry映射关系获取v

         1》使用Map集合中entrySet()方法;把Map-->Entry映射对象取出-->存到Set集合中

    2》遍历Set集合-->获取每一个Entry对象

    3》使用Entry对象中的方法-->getKey();  getValue();-->获取对应键值对

  如:

  package cn.kgc.demo01.map;

  import java.util.*;

  public class Demo02EntrySet {

        public static void main(String[] args) {

            getKV();

        }

        public static void getKV(){

            //1,创建集合

            HashMap<String, Integer> mm = new HashMap<>();

            mm.put("杨幂",28);

            mm.put("刘诗诗",26);

            mm.put("景甜",28);

            mm.put("林志玲",35);

            System.out.println(mm);

            // 2,使用 entrySey() 获取映射对象

            Set<Map.Entry<String, Integer>> set = mm.entrySet();

            // 3 ,遍历获取entry 对象

            Iterator<Map.Entry<String, Integer>> it = set.iterator();

            while (it.hasNext()){

                   Map.Entry<String, Integer> entry = it.next();

                // 根据entry对象调用get方法获取key和value

                String key = entry.getKey();

                 Integer value = entry.getValue();

                 System.out.println(key+"="+value);

            }

            // 4,增强for

            System.out.println("************************************");

            for (Map.Entry entry:set){

                  String key = (String) entry.getKey();

                  Integer value =(Integer) entry.getValue();

                  System.out.println(key+":"+value);

            }

            System.out.println("************************************");

            for (Map.Entry<String,Integer> entry:mm.entrySet()){

                  System.out.println(entry.getKey()+"="+entry.getValue());

            }

       }

  }

 

posted @ 2019-05-19 17:13  听说名字长的人都非常厉害  阅读(143)  评论(0编辑  收藏  举报