ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Java中的HashMap

2021-12-12 12:34:23  阅读:155  来源: 互联网

标签:Java String Sites value key put HashMap


Java中的HashMap

简介

HashMap是什么?
HashMap是一个散列表,它存储的内容是键值对(key-value)映射
HashMap实现了Map接口,最多允许一条记录的键为null,不支持线程同步
HashMap是无序的,即不会记录插入的顺序

HashMap的key与value类型可以相同也可以不同,可以是String,Integer等

联机模式的用户列表就是用HashMap存储的
相对于数组存储方式 HashMap的查找删除操作更方便,当用户断开连接时可以很方便地删除

常用

导入HashMap类

HashMap类位于java.util包中,使用前需要引入它

import java.util.HashMap;

构造

构造HashMap的时候需要说明键值对的类型<keytype, valuetype>

HashMap<Integer, String> Sites = new HashMap<Integer, String>();

添加元素

添加键值对可以使用put()方法
方法原型:

String java.util.HashMap.put(String key, String value);

方法实例:

Sites.put(1,"HFUT");
Sites.put(2,"USTC");

执行输出System.out.println(Sites);得到的结果

{1=HFUT, 2=USTC}

访问元素

调用get(key)方法获取key对应的value

String java.util.HashMap.get(Object key);

删除元素

调用remove(key)方法删除key对应键值对(key-value)

String java.util.HashMap.remove(Object key)

计算大小

调用size()方法计算HashMap中的元素数量

int java.util.HashMap.size()

迭代

使用for-each来迭代HashMap中的元素
如果你只想获取 key,可以使用 keySet() 方法,然后可以通过 get(key) 获取对应的 value,如果你只想获取 value,可以使用 values() 方法。

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

public class RunoobTest {
    public static void main(String[] args) {
        // 创建 HashMap 对象 Sites
        HashMap<Integer, String> Sites = new HashMap<Integer, String>();
        // 添加键值对
        Sites.put(1, "Google");
        Sites.put(2, "Runoob");
        Sites.put(3, "Taobao");
        Sites.put(4, "Zhihu");
        // 输出 key 和 value
        for (Integer i : Sites.keySet()) {
            System.out.println("key: " + i + " value: " + Sites.get(i));
        }
        // 返回所有 value 值
        for(String value: Sites.values()) {
          // 输出每一个value
          System.out.print(value + ", ");
        }
    }
}

查重

containsKey();//检查是否存在指定的key对应的映射关系
containsValue();//检查是否存在指定的value对应的映射关系

标签:Java,String,Sites,value,key,put,HashMap
来源: https://www.cnblogs.com/chengzhid/p/15678788.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有