zoukankan      html  css  js  c++  java
  • Java基础中map接口和实现类

    1.Map接口常用的实现类有HashMap和TreeMap.

    2.HashMap类实现的Map集合对于添加和删除映射关系效率更高。HashMap是基于哈希表的Map接口的实现,HashMap通过哈希码对其内部的映射关系进行快速查询,由HashMap类实现的Map集合对于添加或删除映射关系效率较高。

    3.TreeMap中的映射关系存在一定的顺序,如果希望Map集合中的对象存在一定的顺序,该使用TreeMap类实现Map集合。

     

    HashMap类

       ①此类不保证映射的顺序,特别是不保证该顺序恒久不变

       ②此类实现提供所有可选的映射关系,并允许使用null值和null键,但是必须保证键的唯一性

       ③此类通过哈希码对其内部的映射关系进行查找

    TreeMap类

       ①该类不仅实现了Map接口,还实现了java.util.SortedMap接口,因此集合中的映射关系具有一定顺序

       ②由于TreeMap实现的Map集合中的映射关系是根据键对象按照一定的顺序排列的,因此不允许键对象是null

       ③在添加,删除和定位 映射关系,TreeMap类比HashMap类的性能差一些

    可以通过HashMap类创建Map集合,当需要顺序输出时,在创建一个完成相同映射关系的TreeMap

    首先创建一个Map集合,并添加集合对象,分别遍历由HashMap类与TreeMap类实现的Map集合,观察两者的区别,代码如下:

    package com.naya.Person;
    
    public class Emp {
        private String e_id;
        private String e_name;
        
        public Emp(String e_id,String e_name) {
            this.e_id=e_id;
            this.e_name=e_name;        
        }
        
      public String getE_id() {
            return e_id;
        }
        public void setE_id(String e_id) {
            this.e_id = e_id;
        }
        public String getE_name() {
            return e_name;
        }
        public void setE_name(String e_name) {
            this.e_name = e_name;
        }
        
    }
    package com.naya.Person;
    
    import java.util.HashMap;
    import java.util.Iterator;
    import java.util.Map;
    import java.util.Set;
    import java.util.TreeMap;
    public class MapText {
        public static void main(String[] args) {
            Map map=new HashMap();    //由HashMap实现的Map对象
            Emp emp=new Emp("001","张三");
            Emp emp2=new Emp("005","李四");
            Emp emp3=new Emp("004","王一");
            map.put(emp.getE_id(), emp.getE_name());
            map.put(emp2.getE_id(), emp2.getE_name());
            map.put(emp3.getE_id(), emp3.getE_name());
            System.out.println(map);
            //获取Map集合中的key对象集合
            Set set=map.keySet();
            System.out.println(set);
            
            System.out.println("HashMap类实现的Map集合,无序");
            
            Iterator it=set.iterator();
            while(it.hasNext()){
                String str=(String)it.next();
                String name=(String)map.get(str);
                System.out.println(str+":"+name); 
            }
            
            System.out.println("TreeMap类实现的Map集合,键对象升序");
            TreeMap treemap=new TreeMap();   //创建TreeMap集合对象
            treemap.putAll(map);
            System.out.println(treemap);
            
            Iterator iter=treemap.keySet().iterator();
            while(iter.hasNext()){
                String str=(String)iter.next();
                String name=(String)map.get(str);
                System.out.println(str+":"+name); 
            }
            
        }
    }

    运行的结果:

  • 相关阅读:
    MySQL问题记录——2003-Can't connect to MySQL server on 'localhost'(10038)
    MySQL学习——管理用户权限
    Java技巧——将前端的对象数组通过Json字符串传到后端并转换为对象集合
    JDK1.8新特性——使用新的方式遍历集合
    JDK1.8新特性——Collector接口和Collectors工具类
    Java技巧——比较两个日期相差的天数
    MySQL学习——操作自定义函数
    MySQL学习——操作存储过程
    MySQL问题记录——ERROR 1728 (HY000)
    Linux上安装nginx
  • 原文地址:https://www.cnblogs.com/514929hgy/p/6912298.html
Copyright © 2011-2022 走看看