栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

HashMap的基础使用方法

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

HashMap的基础使用方法

文章目录
    • 一、HashMap的结构
    • 二、HashMap的继承类
    • 三、Key和Value类型设定
    • 四、常规使用方法
    • 五、获取key或者value集合


一、HashMap的结构

HashMap采用了数组和链表的数据结构,能在查询和修改方便继承了数组的线性查找和链表的寻址修改,它存储的内容是键值对(key-value)映射。

二、HashMap的继承类

三、Key和Value类型设定

HashMap 的 key 与 value 类型可以相同也可以不同。
可以是字符串(String)类型的 key 和 value,也可以是整型(Integer)的 key 和字符串(String)类型的 value。

基本类型对应的包装类表如下:

基本类型引用类型
booleanBoolean
byteByte
shortShort
intInteger
longLong
charCharacter
floatFloat
doubleDouble

ex:
下边的例子设置key为Integer类型,value为String类型。

 HashMap map = Map.of(1,"one",2,"two",3,"three");
keyvalue
1one
2two
2three
四、常规使用方法

1.引入类

import java.util.HashMap;   // 引入 HashMap 类

2.初始化

HashMap Sites = new HashMap();

3.常用方法
(1)添加元素 :put( )方法

 HashMap Sites = new HashMap();
        // 添加键值对
        Sites.put(1, "Google");
        Sites.put(2, "Runoob");
        Sites.put(3, "Taobao");
        Sites.put(4, "Zhihu");

(2)访问元素 :get( )方法

HashMap Sites = new HashMap();
        // 添加键值对
        Sites.put(1, "Google");
        Sites.put(2, "Runoob");
        Sites.put(3, "Taobao");
        Sites.put(4, "Zhihu");
        //打印访问元素
        System.out.println(Sites.get(3));

(3)删除元素:remove( )方法
删除 key 对应的键值对(key-value)

HashMap Sites = new HashMap();
        // 添加键值对
        Sites.put(1, "Google");
        Sites.put(2, "Runoob");
        Sites.put(3, "Taobao");
        Sites.put(4, "Zhihu");
        //删除元素
        Sites.remove(4);

(4)删除所有的HashMap:clear( )方法
删除所有键值对(key-value) ,清空整个数据结构。

HashMap Sites = new HashMap();
        // 添加键值对
        Sites.put(1, "Google");
        Sites.put(2, "Runoob");
        Sites.put(3, "Taobao");
        Sites.put(4, "Zhihu");
        //删除所有键值对
        Sites.clear();

(5)计算大小:size( )方法

// 创建 HashMap 对象 Sites
        HashMap Sites = new HashMap();
        // 添加键值对
        Sites.put(1, "Google");
        Sites.put(2, "Runoob");
        Sites.put(3, "Taobao");
        Sites.put(4, "Zhihu");
        System.out.println(Sites.size());

(6)有无映射关系:isEmpty()方法
如果 HashMap 中不包含任何键/值对的映射关系则返回 true,否则返回 false。

// 创建 HashMap 对象 Sites
        HashMap Sites = new HashMap();
        // 添加键值对
        Sites.put(1, "Google");
        Sites.put(2, "Runoob");
        Sites.put(3, "Taobao");
        Sites.put(4, "Zhihu");
        
        result = sites.isEmpty(); // true
        //如果 HashMap 中不包含任何键/值对的映射关系则返回 true
        //否则返回 false。

(7)检查是否有key对应的映射关系:containsKey() 方法
containsKey() 方法检查 hashMap 中是否存在指定的 key 对应的映射关系。
如果 hashMap 中是否存在指定的 key 对应的映射关系返回 true,否则返回 false。

// 创建 HashMap 对象 Sites
        HashMap Sites = new HashMap();
        // 添加键值对
        Sites.put(1, "Google");
        Sites.put(2, "Runoob");
        Sites.put(3, "Taobao");
        Sites.put(4, "Zhihu");
        
        if(sites.containsKey(1)) {
            System.out.println("key 为 1 存在于 sites 中");
        }  //判断key为1的映射关系是否存在。
        if(!sites.containsKey(5)) {
            sites.put(5, "Wiki");
        }  //如果key为5的映射关系不存在,则插入key为5的映射关系。
        

(8)检查是否有value对应的映射关系:containsValue() 方法
containsValue() 方法检查 hashMap 中是否存在指定的 value 对应的映射关系。
如果 hashMap 中是否存在指定的 value 对应的映射关系返回 true,否则返回 false。

// 创建 HashMap 对象 Sites
        HashMap Sites = new HashMap();
        // 添加键值对
        Sites.put(1, "Google");
        Sites.put(2, "Runoob");
        Sites.put(3, "Taobao");
        Sites.put(4, "Zhihu");
        
        if(sites.containsValue("Runoob")) {
            System.out.println("Runoob 存在于 sites 中");
        }//判断value为"Runoob"的映射关系是否存在。
        if(!sites.containsValue("Wiki")) {
            sites.put(sites.size(), "Wiki");
        }//如果value为"Wiki"的映射关系不存在,则插入value为"Wiki"的映射关系。
        
五、获取key或者value集合

1.获取key集合
Map集合为我们提供了两种取值方式:

(1)keySet():
返回值类型:Set< Object > 方法是 keySet();返回此映射中包含键的Set 视图 ,将Map中所有的键存入到Set集合中,因为Set具备迭代器,所以用迭代的方式取出所有键,再根据get()方法取出所对应的值。

(2)entrySet():
返回值类型:Set> 方法是entrySet(),这个方法取出的是 关系 ,关系中包含key和value,其中 Map.Entry 来表示数据类型。
即:将Map集合中的映射关系存入Set集合中这个关系的数据类型 Map.Entry。

方法过程
keySet()先获取所有键的集合, 再根据键获取对应的值。
entrySet()先获取map中的键值关系封装成一个个的entry对象, 存储到一个Set集合中,再迭代这个Set集合, 根据Entry获取对应的Key和Value向集合中存储自定义对象 。

<1> 获取:使用keySet() 方法返回映射中所有 key 组成的 Set 视图。

// 创建 HashMap 对象 Sites
        HashMap Sites = new HashMap();
        // 添加键值对
        Sites.put(1, "Google");
        Sites.put(2, "Runoob");
        Sites.put(3, "Taobao");
        Sites.put(4, "Zhihu");

<2> 使用entrySet() 方法返回映射中包含的映射的 Set 视图。

    for(HashMap.Entry entry : Sites.entrySet()) {
            System.out.println(entry.getKey());
        }

2.遍历
(1).使用迭代器进行遍历。

        //获取
        Set set = Sites.KeySet(); //利用Set()函数获取newmap中所有的key值
        
        //遍历
        Iterator  ite = Sites.iterator();   // 创建一个叫ite的迭代器
        while(ite.hasNext()){  // 利用hasNext()判断下一个元素是否存在
             System.our.println((String)ite.Next());               
             // !这句才是重点 获取到Key值后要进行强制类型转换才能输出  
             newmap.get(ite.Next()).showStudent();    
             //  Next() 第一次调用时返回的是newmap里的第一个元素的key值
             // 下次调用返回下一个元素的key值

(2)for循环直接访问。
这种方法多半是用来直接访问的,很少带有更多的对key置的操作,相反使用迭代器更容易进行多次重复访问,比较,搜索等操作。

   for(int key : Sites.keySet()){
			System.out.println(key);
	}

3.获取value值
通过values方法获取value集合,因为value可以重复,因此返回的类型为Collection。//注意类型是Collection

    Collection values = map.values();
		for(Integer i : values)
			System.out.println(i);	
	}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/342958.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号