• java Map接口


    映射关系,也有人称为字典,Map集合里存在两组值,一组是key,一组是value。Map里的key不允许重复。通过key总能找到唯一的value与之对应。

    Map里的key集存储方式和对应的Set集合中的元素存储方式一致;

    学生都有一个学号,我们能点学号就能找到某个学生,好比这个学号就是key,学生就是value。

    Map.Entry是Map接口的内部接口,专门用来保存key-value内容:

    Map常用方法

    void clear():删除该Map对象中所有的key-value对。也就是清理该集合;

    boolean containsKey(Object key):查询Map中是否包含指定的key;

    boolean containsValue(Object  value):查询Map中是否包含至少一个value;

    Set entrySet():返回Map所包含的key-value对所组成的Set集合,每个集合元素都是Map.Entry对象(Entry是Map内部类);

    Object get(Object key):返回指定key所对应的value,若此Map中不包含该key,返回null;

    boolean isEmpty():判断Map集合是否为空;

    Set keySet():返回该Map中所有key所组成的Set集合;

    Object put(Object key,Object value):添加一个key-value对,若Map中已有与key相等的key-value对,则新的key-value对覆盖原来的key-value对;

    void putAll(Map m):将m中的key-value赋值到调用该方法的Map对象中;

    Object remove(Object key):删除指定key所对应的key-value对,返回本删除key所关联的value,若key不存在,返回null;

    int size():返回该Map里面key-value对的个数;

    Collection values():返回Map里所有value组成的Collection。

    Eg:package july7;

    import java.util.Collection;

    import java.util.HashMap;

    import java.util.Map;

    import java.util.Set;

    public class Demo17 {

        public static void main(String[] args) {

           

            Map m = new HashMap();

           

            m.put(1, "jack");

            m.put(2, "rose");

            m.put(3, "lucy");

           

            System.out.println(m);//{1=jack, 2=rose, 3=lucy}

            Set s = m.entrySet();

            System.out.println(s);//[1=jack, 2=rose, 3=lucy]

           

            s = m.keySet();

            System.out.println(s);//[1, 2, 3]

            for (Object key : s) {

                System.out.println(key);//Key

                System.out.println(m.get(key));//Value

            }

           

            Collection c = m.values();

            System.out.println(c);

        }

    }

    Map.Entry

    Entry是Map接口里面的一个内部接口.

    该接口用于封装key- value,有3个方法:

    Object getKey();返回Entry里包含的key值

    Object getValue();返回Entry里包含的value值

    Object setValue(Object value):设置Entry里包含的value值,并返回新设置的value值;

    Map集合的输出

    按照最正统的做法,所有的Map集合的内容都要依靠Iterator输出,以上虽然是完成了输出,但是完成的不标准,Map集合本身并不能直接为Iterator实例化,如果此时非要使用Iterator输出Map集合中内容的话,则要采用如下的步骤:

    方法一:

    1.通过entrySet方法变成Set对象

    2.调用Set的Iterator方法,此时每个Iterator对象是Map.Entry对象

    3.对Map.Entry分离出 key - value

    方法二:

    1.通过keySet得到Map集合多有key的Set集合

    2.调用Set的Iterator方法,此时每个Iterator对象是key

    3.通过Map的getValue(key)得到value

    Eg:

    package july7;

    //把Map中的元素取出来

    import java.util.HashMap;

    import java.util.Iterator;

    import java.util.Map;

    import java.util.Map.Entry;

    import java.util.Set;

    public class Demo18 {

        public static void main(String[] args) {

           

            Map<Integer, String> m = new HashMap<Integer, String>();

           

            m.put(1, "jack");

            m.put(2, "rose");

            m.put(3, "lucy");

           

            //第一种方法

            Set s = m.entrySet();

            Iterator it = s.iterator();

            while(it.hasNext()){

                Map.Entry me = (Entry) it.next();

                System.out.println(me.getKey()+"  "+me.getValue());

            }

            //第二种方法

           

            s = m.keySet();//得到的是key的集合

            it = s.iterator();//然后将key迭代出来

            while(it.hasNext()){

                int i = (int)it.next();

                System.out.println(i+"   "+m.get(i));

            }

        }

    }

  • 相关阅读:
    kubeadm High availability cluster(1.23)
    OpenSSH升级版本到最新(8.9)
    如何修复 Linux 中的“passwd:鉴定令牌操作错误”
    dd命令
    Docker 更新版本
    iftop命令命令详解
    云原生时代的DevOps之道
    yum获取rpm软件包的三种方法
    Kubernetes使用helm部署单机版mysql(使用hostPath数据卷)
    The connection to the server localhost:8080 was refused did you specify the right host or port?
  • 原文地址:https://www.cnblogs.com/fanweisheng/p/11136152.html
Copyright © 2020-2023  润新知