[JAVA数据结构]HashMap

这篇具有很好参考价值的文章主要介绍了[JAVA数据结构]HashMap。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

1.HashMap

1.1Map的常用方法

1.2HashMap的使用案例


1.HashMap

基于哈希表的实现的Map接口。

Map底层结构 HashMap
底层结构 哈希桶
插入/删除/查找时间复杂度 O(1)
是否有序 无序
线程安全 不安全
插入/删除/查找区别 通过哈希函数计算哈希地址
比较与覆写 自定义类型需要覆写equals和
hashCode方法

1.1Map的常用方法

方法 解释
V get(Object key) 返回 key 对应的 value
V getOrDefault(Object key, V defaultValue) 返回 key 对应的 value,key 不存在,返回默认值
V put(K key, V value) 设置 key 对应的 value
V remove(Object key) 删除 key 对应的映射关系
Set<K> keySet() 返回所有 key 的不重复集合
Collection<V> values() 返回所有 value 的可重复集合
Set<Map.Entry<K, V>> entrySet() 返回所有的 key-value 映射关系
boolean containsKey(Object key) 判断是否包含 key
boolean containsValue(Object value) 判断是否包含 value

注意:Map.Entry<>是Map内部实现的用来存放key-value相应键值对的内部类 

        其内部有getKey(),getValue与setValue()方法

1.2HashMap的使用案例

创建一个HashMap,及put的使用

import java.util.*;

public class Test {
    public static void Map(){
        Map<String,Integer> map = new HashMap<>();
        //创建一个HashMap key的类型为"String" value的类型为"Integer"

        map.put("a",1);
        map.put("b",2);
        map.put("c",3);
        map.put("d",100);
        map.put(null,null);
        map.put("d",4);//当key存在时,则会更新value
        //向map中put入五个键值对
        //注意噢,在HashMap中的key和value都可以为null

        int size = map.size();
        System.out.println("size = " + size);
        //通过size()方法,得到map中键值对的数量.此时size == 5

        int retGet = map.get("a");
        System.out.println("retGet = " + retGet);
        //通过get()方法,得到对应key的value值.此时retGet为1
        //retGet = map.get("z");//map中的key没有"z",此条程序会报错
        //注意!!! 当使用get方法时,map中没有对应的key值时,程序会报错

        int retGOD = map.getOrDefault("z",-1);
        System.out.println("retGOD = " + retGOD);
        //此处retGOD为-1
        //通过getOrDefault()方法,得到对应的key的value值,如果key值不存在
        //则返回我们设置的默认值"-1".
        //与get()不同的是,查找的key如果不存在于map中,也不会进行报错

        boolean retConK = map.containsKey("a");
        boolean retConV = map.containsValue(4);
        System.out.println("retConk = " + retConK);
        System.out.println("retConV = " + retConV);
        //通过containsKey()方法查找map中是否存在对应的key值
        //containsValue()方法查找map中是否存在对应的value,可以是一个或多个

        Set<String> set = map.keySet();
        for (String s:set) {
            System.out.print(s + " ");
        }
        System.out.println();
        //通过keySet()方法,返回map中所有的key值,并以set的形式返回

        int retRemove = map.remove("a");
        System.out.println("retRemover = " + retRemove);
        //通过remove()方法,根据key值删除相应的键值对,并返回删除的value值

        int retReplace = map.replace("b",10);
        System.out.println("retReplace = " + retReplace);
        //通过replace()方法,更新key的value--好像直接put也一样?

        Collection<Integer> collection = map.values();
//        for (int i:collection) {         此方法因为value中有一个null,直接遍历会有一个空指针的报错,int类型也不能与null比较
//            System.out.println(i + " "); 于是乎,有了以下使用迭代器的方式来遍历
//        }
//        System.out.println();
        Iterator<Integer> iterator = collection.iterator();
        while (iterator.hasNext()){
            System.out.print(iterator.next() + " ");
        }
        System.out.println();
        //通过keySet()方法,返回map中所有的value值,以collection的形式返回

        Set<Map.Entry<String,Integer>> entrySet = map.entrySet();
        for (Map.Entry<String, Integer> s : map.entrySet()) {
            System.out.print(s.getKey() + "->" + s.getValue() + " ");
        }
        System.out.println();
        //通过entrySet()方法,得到key与value的对应关系,并使用其getKey与getValue得到相应的值

    }
    public static void main(String[] args) {
        Map();
    }
}

[JAVA数据结构]HashMap,java,数据结构,开发语言

 文章来源地址https://www.toymoban.com/news/detail-527033.html

 

到了这里,关于[JAVA数据结构]HashMap的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • java数据结构(哈希表—HashMap)含LeetCode例题讲解

      目录 1、HashMap的基本方法 1.1、基础方法(增删改查) 1.2、其他方法  2、HashMap的相关例题 2.1、题目介绍 2.2、解题 2.2.1、解题思路 2.2.2、解题图解 2.3、解题代码 HashMap 是一个散列表,它存储的内容是键值(key-value)映射。 HashMap 的 key 与 value 类型可以相同也可以不同,根据定

    2024年02月05日
    浏览(52)
  • java碳排放数据信息管理系统Myeclipse开发mysql数据库web结构java编程计算机网页项目

    一、源码特点     java Web碳排放数据信息管理系统是一套完善的java web信息管理系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环 境为TOMCAT7.0,Myeclipse8.5开发,数据库为Mysql5.0,使用java语言开发。 java Web碳排放数据信

    2024年01月22日
    浏览(50)
  • java生态环境评价Myeclipse开发mysql数据库web结构java编程计算机网页项目

    一、源码特点     java 生态环境评价管理系统是一套完善的java web信息管理系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为 TOMCAT7.0,Myeclipse8.5开发,数据库为Mysql5.0,使用java语言开发。 java web 生态环境评价系

    2024年02月19日
    浏览(41)
  • java排课管理系统Myeclipse开发mysql数据库web结构java编程计算机网页项目

    一、源码特点     java排课管理系统是一套完善的java web信息管理系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为TOMCAT7.0,Myeclipse8.5开发,数据库为Mysql5.0,使用java语言开发。 java web 排课管理系统1 下载地址

    2024年02月19日
    浏览(51)
  • java流浪动物保护系统Myeclipse开发mysql数据库web结构java编程计算机网页项目

    一、源码特点     java Web 流浪动物保护系统是一套完善的java web信息管理系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为TOMCAT7.0,Myeclipse8.5开发,数据库为Mysql5.0,使用java语言开发。 二、功能介绍 前台功能:

    2024年02月04日
    浏览(41)
  • 数据结构与算法细节篇之最短路径问题:Dijkstra和Floyd算法详细描述,java语言实现。

    最短路径的算法有两个, Dijkstra算法 和 Floyd算法 。 Dijkstra算法 解决的是 单源 最短路径问题 。 Floyd算法解决的是 多源 最短路径问题,并且可以处理负权图 。 今天要讲的就是Dijkstra算法。 加: feng--Insist (大写的i),进java交流群讨论互联网+技术。可索要PPT等资料。 其他资料

    2024年02月11日
    浏览(53)
  • 《HashMap的数据结构》

    目录 HashMap概述:  数据结构的组成: 一个键值对是如何存入该结构中: HashMap中链表和红黑树的用途和转换方式 :                     HashMap是基于哈希表的Map接口实现的,它存储的内容是键值对key,value映射。 该类无序。         在JDK1.7及以前,HashMap的数据结构是有

    2024年02月07日
    浏览(40)
  • HashMap的数据结构

    HashMap基于哈希表的Map接口实现,是以key-value存储形式存在,即主要用来存放键值对。HashMap的实现不是同步的,这意味着它不是线程安全的。它的key、value都可以为null。此外,HashMap中的映射不是有序的。 JDK1.8之前的HashMap由数组+链表组成的,数组是HashMap的主体,链表则是主要

    2024年02月07日
    浏览(44)
  • java 体育明星管理系统Myeclipse开发mysql数据库web结构java编程计算机网页项目

    一、源码特点     java Web 体育明星管理系统是一套完善的java web信息管理系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为 TOMCAT7.0,Myeclipse8.5开发,数据库为Mysql5.0,使用java语言开发。 java Web体育明星管理系统

    2024年02月02日
    浏览(49)
  • 数据结构---HashMap和HashSet

    HashMap和HashSet都是存储在哈希桶之中,我们可以先了解一些哈希桶是什么。 像这样,一个数组数组的每个节点带着一个链表,数据就存放在链表结点当中。哈希桶插入/删除/查找节点的时间复杂度是O(1) map代表存入一个key值,一个val值。map可多次存储,当第二次插入时,会更新

    2024年02月06日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包