一文看懂HashMap和Map的区别 - 极悦
首页 课程 师资 教程 报名

一文看懂HashMap和Map的区别

  • 2022-01-05 11:22:05
  • 1875次 极悦

Map 是 Java 中用于映射密钥对值的接口。它用于插入、更新、删除元素。而HashMap是一类Java集合框架。

Map 接口只能与实现类一起使用。它允许将值存储在密钥对组合中;它不允许重复的密钥;但是,我们可以存储重复的值。其实现类如下:

哈希表

哈希表

树图

并发哈希映射

链接哈希映射

HashMap 是 Java 中一种强大的数据结构,用于存储密钥对值。它通过关联的键映射一个值。它允许我们存储空值和空键。它是Java集合的非同步类。

地图接口的实现

该地图界面可以通过实现类来实现。考虑下面的例子:

import java.util.*;  
public class MapExample {  
        public static void main(String args[])   
        {   
            Map<String, Integer> m   
                = new HashMap<String, Integer>(); //implementation of the Map Interface    
            m.put("Abhi", new Integer(001)); //Adding elements  
            m.put("Nick", new Integer(002));   
            m.put("Ketty", new Integer(003));   
            m.put("Paul", new Integer(004));   
            for (Map.Entry<String, Integer> me : m.entrySet())// Traversing of the elements through the Map   
            {   
                System.out.print(me.getKey() + ":");   
                System.out.println(me.getValue());   
            }   
        }   
    }   

输出:

Nick:2
Abhi:1
Paul:4
Ketty:3

HashMap 类的实现

HashMap 类可以声明如下:

public class HashMap<K,V> extends AbstractMap<K,V> implements Map<K,V>, Cloneable, Serializable    

考虑以下示例来实现 HashMap: 

//Java program to store the key-pair values using HashMap  
import java.util.*;  
public class HashMapDemo {  
     public static void main(String args[]){    
      //HashMap implementation  
         HashMap<Integer,String> m=new HashMap<Integer,String>();//Creating HashMap      
       m.put(1,"Chris");  //Adding elements in Map    
       m.put(2,"Morris");      
       m.put(3,"Sam");     
       m.put(4,"Cruise");      
       System.out.println("Iterating Hashmap...");    
       for(Map.Entry me : m.entrySet()){      
        System.out.println(me.getKey()+" "+me.getValue());      
       }    
    }    
    }    

输出: 

Iterating Hashmap...
1 Chris
2 Morris
3 Sam
4 Cruise

Map 和 HashMap 之间的一些主要区别如下:

Map是一个接口,HashMap是一个框架Java集合类

Map 接口可以通过使用它的实现类来实现。相比之下,HashMap 类实现了 Map 接口。

Map 包含唯一的密钥对值。但是,HashMap 可以保存重复值。

Map 不允许空值。但是 HashMap 可以有一个空键和多个值。

Map有两种实现,分别是HashMap和TreeMap。而 HashMap 实现了 Map 接口并扩展了 AbstractMap 类。

Map 和 HashMap 对象之间没有区别。

选你想看

你适合学Java吗?4大专业测评方法

代码逻辑 吸收能力 技术学习能力 综合素质

先测评确定适合在学习

在线申请免费测试名额
价值1998元实验班免费学
姓名
手机
提交