• 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

  • 相关阅读:
    优雅的windowsC++项目的配置
    C++实现编码转换
    C++读取配置文件
    完全依赖QML实现播放器
    记一次和“N+1”的擦肩而过
    FFmpeg4.0笔记:采集系统声音
    FFmpeg4.0笔记:采集桌面
    FFmpeg4.0笔记:封装ffmpeg的解封装功能类CDemux
    SDL2:封装媒体显示播放Csdl2
    FFmpeg4.0笔记:封装ffmpeg的音频重采样功能类CSwr
  • 原文地址:https://www.cnblogs.com/xuwangqi/p/11224557.html
Copyright © 2020-2023  润新知