zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    VM安装CentOs7虚拟机后无法上网之解决方法
    vue中touchEnd事件和touchStart、touchMove获取坐标不一样,IOS绑定touch事件失效
    【个推独家】让你一次性掌握Neo4j性能优化秘籍的三大狠招
    【深度干货】异构数据的SQL一站式解决方案
    个推基于Jenkins的自动打包构建实践
    个推CTO叶新江专访| 数据智能的未来,是不提大数据但其无所不在的时代
    应用系统间数据传输方式总结(附相关概念解释)
    JavaScript中“&&”和“||”操作符的意义,深入理解和使用场景
    静态布局、自适应布局、流式布局、响应式布局、弹性布局等的概念和区别
    前端跨域问题相关知识详解(原生js和jquery两种方法实现jsonp跨域)
  • 原文地址:https://www.cnblogs.com/xuwangqi/p/11224557.html
Copyright © 2011-2022 走看看