zoukankan      html  css  js  c++  java
  • Map集合的应用及其遍历方式

       ---> HashMap :底层基于哈希表
          存储原理也使用哈希表来存放的:
                往HashMap添加了元素 ,首先会调用键的hashCode方法 获得一个哈希值,然后经过运算获取一个位置。
                情况1:如果位置上没有元素 ,那么直接将该元素存放在此位置。
                情况2:如果位置上有了元素,那么还会调用元素equals方法与这个位置的元素做比较,如果反回回来的true,
                那么就被视为相同的键,就不存,如果返回回来时false,那么就可存该元素。
             
          ---> TreeMap : 给予二叉树的结构存储。 特点:以键来做自然排序
               使用注意点:
                  1.往TreeMap 添加的元素时,如果元素的键具备自然排序功能,那么就会通过自然排序对元素进行排序。
                  2.往TreeMap 添加的元素时 如果不具备自然排序特性 ,键所属的类必须要实现Comparable接口,把这个键的比较规则
                  定义在compareTo方法中。
                  3.往TreeMap 添加的元素时 如果不具备自然排序特性,也没有实现Comparable接口,创建TreeMap的时候给他一个比较器
                  结构 :
                    class 类名  implements Compartor 接口{
                   
                    }
                   
                    键的比较规则定义在compare方法中。
               
          ---> HashTable : HashMap 一样的使用,线程安全。  访问比较慢  (了解)

       --->Map集合的便利方式(三种)

       map遍历元素方式一: keySet(); Set视图  -->获取所有的键用Set集合来保存
            特点 : 通过遍历键 ,通过键来取值
            Set<String> set = map.keySet();  
            Iterator<String> it = set.iterator();
            while(it.hasNext()){
                
                String key = it.next();
                System.out.println("键"+key +":值"+map.get(key));
            }

      map集合遍历方式二: values(); 获取map集合中所有的值,用Collection集合来保存
            Collection<String> coll = map.values();
            创建一个迭代器
            Iterator<String> it = coll.iterator();
            while(it.hasNext()){
                
                System.out.println("值:"+it.next());
                
            }

      map集合的遍历方式三:entrySet();
            Set<Map.Entry<String, String>> entrys = map.entrySet();
            获取迭代器
            Iterator<Map.Entry<String, String>> it = entrys.iterator();
            
           
             Map.Entry : 接口  :提供给用户来操作map集合
               getKey(); 获取键
               getValue();获取值
               setValue();更改值
            
            
            while(it.hasNext()){
                
                Map.Entry<String, String> entry = it.next();
          
                String key = entry.getKey();
                if(("1").equals(key)){
                    
                    entry.setValue("哈哈");
                }
                
                System.out.println("键:"+entry.getKey() + " 值:"+entry.getValue());
            }
           


           

  • 相关阅读:
    CUDA ---- 线程配置
    IOC/DI-控制反转----AOP-面向切面编程-----SpringMvc框架
    @RequestMapping与@PostMapping等新注释的curd操作
    SSM框架整合
    webapp下jsp文件报错
    基于maven使用IDEA创建多模块项目
    CURD
    Linux终端常用命令
    pom文件-常用插件jar包
    application常用配置
  • 原文地址:https://www.cnblogs.com/houjiie/p/6121925.html
Copyright © 2011-2022 走看看