0
点赞
收藏
分享

微信扫一扫

SEday15 2022.02.17 API第15天:

船长_Kevin 2022-02-17 阅读 34

1、Map接口—查找表

HashMap 是一个散列表,它存储的内容是键值对(key-value)映射。

  • Map体现的结构是一个多行两列的表格,其中左列称为“Key”,优列称为“value”

(1)特点:
-①HashMap 实现了 Map 接口,根据键(Key)的 HashCode 值存储数据,具有很快的访问速度,最多允许一条记录的键为 null,不支持线程同步。

-②HashMap 是无序的,即不会记录插入的顺序。

-③HashMap 继承于AbstractMap,实现了 Map、Cloneable、java.io.Serializable 接口。
在这里插入图片描述

HashMap 的 key 与 value 类型可以相同也可以不同,可以是字符串(String)类型的 key 和 value,也可以是整型(Integer)的 key 和字符串(String)类型的 value。
例:
-//创建一个HashMap对象map,字符串(String)类型的key和整型(Integer)的value:
-Map<String,Integer> map = new HashMap();

MapDemo.java》:

package map;
import java.util.HashMap;
import java.util.Map;
/**
 * java.util.Map接口 查找表
 * Map体现的结构是一个多行两列的表格,其中左列称为“Key”,优列称为“value”
 * Map总是以Key-value对的形式保存一组数据。并且可以根据key获取对应的value。
 * Map有一个要求,Key不允许重复(equals比较)
 *
 * 常用实现类:
 * java.util.HashMap,我们称他为“散列表”,当今查询速度最快的数据结构。
 */
public class MapDemo {
    public static void main(String[] args) {
        //创建一个HashMap对象map,字符串(String)类型的key和整型(Integer)的value:
        Map<String,Integer> map = new HashMap();

        /*
        v put(K k,V v):向当前Map中保存一组键值对
        -添加元素:HashMap类提供了很多有用的方法,添加键值对(key-value)可以使用put()方法:
        -会以:“key=value”的形式打印。  例:“语文=99”
         */
        map.put("语文",99);
        /*
        如果Map的value是包装类类型,获取时不要用基本类型(int)接收,避免自动拆箱引发空指针
        例:int value = map.put("化学",80);//会报空指针异常
           自动拆箱成:int value = map.put("化学",80).intValue();系统默认在后边加上".intValue()"。
        */
        Integer value = map.put("数学",98);//Key不存在时,put方法返回值为null
        map.put("物理",97);
        map.put("化学",99);
        System.out.println(map);//{物理=97, 数学=98, 化学=99, 语文=99}

        value = map.put("数学",77);//Key已经存在则替换value,但是返回值为Key原来对应的value(98)
        System.out.println("value:"+value);//value:98
        System.out.println(map);//{物理=97, 数学=77, 化学=99, 语文=99}

        /*
        v get(Object Key):根据指定的Key获取对应的value,如果给定的Key不存在,则返回值为null
         */
        value = map.get("语文");
        System.out.println("语文:"+value);//语文:99
        value = map.get("体育");
        System.out.println("体育:"+value);//体育:null

    }
}
举报

相关推荐

0 条评论