Java基础中map接口和实现类

Posted 王林飞

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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); 
        }
        
    }
}

运行的结果:

 

以上是关于Java基础中map接口和实现类的主要内容,如果未能解决你的问题,请参考以下文章

Java基础5:抽象类和接口

Java基础:封装

JAVA基础面试题

Java基础Map

java集合之Map接口

Java 基础 集合框架