19映射


  • public interface Map<K,V>
    映射键到值的对象。一张Map不能包含重复的键,每个键可以映射到至多一个值。
  • K--键     V---值     由键得到值,键不能重复,值可以重复,把这一对数据(键和值)统称为键值对
  • 。一个映射是由多个键值对组成的

为了方便操作键和值,就把键值对抽取成了一个类--Map.Entry,Entry对象都是具体的键值对,一个映射可以有多个Entry对象组成

    public static void main(String[] args) {
        //创建映射对象
        Map<String, Integer> map=new HashMap<>();
        //添加元素
        map.put("a", 1);
        map.put("b", 2);
        map.put("c", 3);
        map.put("d", 4);
        //重复键--覆盖
        //map.put("a", 6);
        //判断映射是否包含键
        System.out.println(map.containsKey("c")); //true
        //判断是否包含值
        System.out.println(map.containsValue(7)); //false
        //把映射中的键值对(Entry对象)存放Set集合中进行返回
        //Set<Map.Entry<String, Integer>> s=map.entrySet();
        //根据键获取值---键不存在返回null
        System.out.println(map.get("u")); //null
        //返回的把所有的键存放到Set集合中
        Set<String> set=map.keySet(); 
        //根据键删除键值对
        map.remove("a");//{b=2, c=3, d=4}
        System.out.println(map);
        //删除键值对
        //同时满足才能删除
        map.remove("u", 3);//{b=2, c=3, d=4}
        System.out.println(map);
        //把映射的所有值存储到一个集合中进行返回
        Collection<Integer> c=map.values();
        //为什么上面用的是Set还这里还有个Collection,因为Set具有唯一性,所以用来存放key值刚刚好,key值也具有
        //不可重复性
        System.out.println(map); //{b=2, c=3, d=4}
        
    }

根据键遍历映射 

    public static void main(String[] args) {
        ////创建映射对象
        Map<String, Integer> map=new HashMap<>();
        //添加元素
        map.put("a", 1);
        map.put("b", 2);
        map.put("c", 3);
        map.put("d", 4);
         
        //1.获取映射中所有的键
        Set<String> set=map.keySet();
        //遍历键
        //增强for循环
        for (String string : set) {
            //由键获取指定值
            System.out.println(string+"="+map.get(string));
        }
    }

根据键值对获取对应的键和值

    public static void main(String[] args) {
        // 创建映射对象
        Map<String, Integer> map = new HashMap<>();
        // 添加元素
        map.put("a", 1);
        map.put("b", 2);
        map.put("c", 3);
        map.put("d", 4);
        
        //2.获取所有的键值对
        /*Set<Map.Entry<String, Integer>> set=map.entrySet();
        //遍历所有的键值对---遍历Set集合
        for (Entry<String, Integer> entry : set) {
            //每个entry就是具体的entry对象就是具体的键值对
            System.out.println(entry.getKey()+"="+entry.getValue());
        }*/
        //开发中
        for(Map.Entry<String, Integer> entry:map.entrySet()){
            //每个entry就是具体的entry对象就是具体的键值对
            System.out.println(entry.getKey()+"="+entry.getValue());
        }
    }

 获取到一个字符串每个字符出现的次数

    public static void main(String[] args) {
        //字符串
        String str="wehiugibI" ;
        //创建映射对象-----键代表字符  值代表字符出现的次数
        Map<String,Integer>map=new HashMap<>();
        //遍历字符串
        for(int i=0;i<str.length();i++)
        {
            //获取到每个字符
            //判断要存入的映射的字符是否已经包含了
            char c=str.charAt(i);
            if(map.containsKey(c+""))
            {
                //获取上一个这个键对应的值再加1
                map.put(c+"",map.get(""+c)+1);
            }
            else
            {
                map.put(c+"",1);
            }
        }
        //遍历映射

        for (Map.Entry<String,Integer>entry:map.entrySet()) {
            //每个entry就是具体的entry对象就是具体的键值对
            System.out.println(entry.getKey()+"="+entry.getValue());
        }

    }

b=1
e=1
u=1
w=1
g=1
h=1
i=2
I=1

posted @ 2019-07-22 10:54  三十六烦恼风x  阅读(126)  评论(0)    收藏  举报