对HashMap的简单认识

本文深入解析了Java中HashMap的原理及使用方法,涵盖了其数据结构、主要特点、构造方法、常用方法及遍历方式,为开发者提供了全面的HashMap应用指南。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、简单介绍

首先介绍map,map是用于存储键值对(<key,value>)的集合类,也可以说是一组键值对的映射。这有点像数据库里的关系表,key是主键,value是主键的值,只是这里只有一个值。
在java中map是一个接口,HashMap基于哈希表来实现Map接口

2、数据结构

我理解的HashMap的样子是这样的:

keyvalue
key1value1
key2value2

key和value是成对存在的,例如key1与value1是一对entry。并且没有重复的key值,它是无序的、唯一的。

3、主要特点

  1. key是无序的、唯一的(加入假如重复的key,则做覆盖处理)
  2. 1个 key 只能对应1个 value, 1个 value 可以对应多个 key
  3. key,value 都可以是任何引用类型(包括 null)的数据(只能是引用类型)

4、构造方法

构造方法有四个:

HashMap() 
//构造一个空的 HashMap ,默认初始容量(16)和默认负载系数(0.75)。  
HashMap(int initialCapacity) 
//构造一个空的 HashMap具有指定的初始容量和默认负载因子(0.75)。  
HashMap(int initialCapacity, float loadFactor) 
//构造一个空的 HashMap具有指定的初始容量和负载因子。  
HashMap(Map<? extends K,? extends V> m) 
//构造一个新的 HashMap与指定的相同的映射 Map 。  

5、常用方法

clear()//从这张地图中删除所有的映射,无返回值
containsKey(Object key) //如果此映射包含指定键的映射,则返回 true 
containsValue(Object value)//如果此地图将一个或多个键映射到指定值,则返回 true 
get(Object key)//返回到指定键所映射的值,或 null如果此映射包含该键的映射。
isEmpty() //如果此地图不包含键值映射,则返回 true 
put(K key, V value)//将指定的值与此映射中的指定键相关联
remove(Object key) //从该地图中删除指定键的映射(如果存在)
remove(Object key, Object value)//仅当指定的密钥当前映射到指定的值时删除该条目
size() //返回此地图中键值映射的数量

6、遍历方法

4种遍历方法:

  1. 采用keySet()+for循环的方法来遍历,keySet()返回的是一个Key值的集合
Map<String,String> map=new HashMap<String,String>();
map.put("key1","value1");
map.put("key2","value2");
map.put("key3","value3");
for(String key:map.keySet()){
     system.out.println("key:"+key);
      system.out.println("value:"+map.get(key));
}
  1. 采用EntrySet()+Iterator进行遍历,EntrySet()返回的是一个Map.Entry的一个集合,它提供getKey(),getValue()方法来获取键值对。

    Iterator< Map.Entry<String,String>> it=map.EntrySet().iterator();
    while(it.hasNext()){
         Map.Entry<String,String> entry=it.next();
         system.out.println("key:"+entry.getKey());
         system.out.println("value:"+entry.getValue());
    }
    
    1. 直接采用EntrySet+for增强进行遍历
    for(Map.Entry<String,String> entry:map.entrySet()){  
            system.out.println("key:"+entry.getKey());
         system.out.println("value:"+entry.getValue());
    }
    
    1. 取出所有value的值,但是不能取出KEY值

      for(String value:map.values()){  <pre name="code" class="html">     system.out.println("value:"+value);
      

更多专业内容参考网址:

  1. https://blog.youkuaiyun.com/qq_36711757/article/details/80394272
  2. https://docs.oracle.com/javase/8/docs/api/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值