首页 > 编程语言 >Java面试题 P12:HashMap和HashTable的区别?底层是怎么实现的?

Java面试题 P12:HashMap和HashTable的区别?底层是怎么实现的?

时间:2023-07-28 23:25:19浏览次数:36  
标签:map 面试题 Java HashMap put orange table apple

区别:

1、HashMap:是线程不安全的,HashTable:每个方法都加了个线程锁(synchronized 修饰),是线程安全的

2、HashMap允许key和value为null,而HashTable不允许

 

底层实现:数据+链表实现

 

 

代码示例:

 

 1     public static void main(String[] args)
 2     {
 3         //HashMap
 4         HashMap<String,String> map=new HashMap<>();
 5         map.put("apple","red");
 6         map.put("banana","yellow");
 7         map.put("orange","orange");
 8 
 9         String value=map.get("apple");
10         System.out.println(value);//输出 red
11 
12         map.remove("banana");
13         System.out.println(map); //输出 {orange=orange, apple=red}
14 
15         map.put(null,"nullvalue");
16         System.out.println(map); //输出 {orange=orange, null=nullvalue, apple=red}
17 
18         map.put("nullkey",null);
19         System.out.println(map); //输出 {orange=orange, null=nullvalue, apple=red, nullkey=null}
20 
21         //HashTable 独特的用法
22         Hashtable<String,String> table=new Hashtable<>();
23         table.put("apple","red");
24         table.put("banana","yellow");
25         table.put("orange","orange");
26 
27         String value1=table.get("apple");
28         System.out.println(value1);
29 
30         table.remove("banana");
31 
32         
33     }

 

标签:map,面试题,Java,HashMap,put,orange,table,apple
From: https://www.cnblogs.com/wuzexin/p/17587375.html

相关文章

  • JavaScript入门基础
    文章和代码已经归档至【Github仓库:<https://github.com/timerring/front-end-tutorial>】或者公众号【AIShareLab】回复javascript也可获取。JavaScript简介布兰登·艾奇(BrendanEich,1961年~),10天完成JavaScript设计。最初命名为LiveScript,后来在与Sun合作之后将其改名为......
  • Java Web|
    1.Spring1.1SpringMVC参数的封装1.传统的URLlocalhost:8080?id=1&name=tom2.基于RESTful风格的URLlocalhost:8080/1/tom前后端分离的开发一般是基于RESTfull,具体规则是4中请求分别表示不同的业务GET查询POST添加PUT修改DELETE删除每个语言使用的时候都一样,是一种规......
  • Java 17:新时代的开端
    引言Java17是JDK17的正式版本,于2021年9月14日发布。作为一个长期支持(LTS)版本,Java17将提供至少8年的支持。本文将深入探讨Java17最新版本的主要更新内容和改进,包括语言、库、工具和性能方面的变化,以及这些变化对Java开发者和应用程序的影响。1.SealedClasses(封闭类)Jav......
  • JavaScript学习 -- HMAC算法基本原理
    HMAC(Hash-basedMessageAuthenticationCode)算法是一种基于哈希算法的消息认证码算法。它可以用于验证和保护数据在传输过程中的完整性和真实性。在JavaScript中,我们可以使用HMAC算法来保证数据的安全性。本篇文章将介绍HMAC算法的基本原理和相关技术,并提供一些实例来演示如何在Ja......
  • 如何用 Java 写一个 Java 虚拟机
    github项目链接https://github.com/FranzHaidnor/haidnorJVMhaidnorJVM使用Java17编写的Java虚拟机意义纸上得来终觉浅,绝知此事要躬行。只学习JVM机制和理论,很多时候任然觉得缺乏那种大彻大悟之感使用简单的方式实现JVM,用于学习理解JVM运行原理主要技术选型J......
  • javaScript判断数据类型的几种方法
    1:typeof返回数据类型,包含这7种:number、boolean、symbol、string、object、undefined、function。typeofnull返回类型错误,返回object。引用类型,除了function返回function类型外,其他均返回object。其中,null有属于自己的数据类型Null,引用类型中的数组、日期、正则也都有......
  • Java 理论和实践: 了解泛型
    级别:初级2005年1月25日Java理论和实践”中,BrianGoetz分析了束缚第一次使用泛型的用户的常见陷阱。您可以通过讨论论坛与作者和其他读者分享您对本文的看法。(也可以单击本文顶端或底端的讨论来访问这个论坛。)表面上看起来,无论语法还是应用的环境(比......
  • Windows本地IDEA运行mapreduce报错java.io.FileNotFoundException: HADOOP_HOME and h
    问题原因在windows运行hadoopJob程序的时候需要模拟下hadoop的运行环境。否则出现会出现标题的问题。解决方案下载Hadoop的bin目录https://github.com/s911415/apache-hadoop-3.1.3-winutils将步骤1中下载的文件配置成环境变量HADOOP_HOME(指向解压之后的的bin的上级目录)。......
  • 利用JAVA操作EXCEL文件
    级别:初级2003年1月11日使用Windows操作系统的朋友对Excel(电子表格)一定不会陌生,但是要使用Java语言来操纵Excel文件并不是一件容易的事。在Web应用日益盛行的今天,通过Web来操作Excel文件的需求越来越强烈,目前较为流行的操作是在JSP或Servlet中创建一个CSV(commasepa......
  • Java开发 - SpringCache初体验
    前言早些时候,博主介绍过Redis的使用:Java开发-Redis初体验,Redie是基于缓存的一项技术,对于Redis,博主此处不再赘述,不了解的可以去看这篇文章,但Redis缓存并不是顶峰,本文要讲的内容就是Redis的辅助工具:SpringCache——的使用。有了SpringCache,Redis便可如虎添翼,使用效果更上一层楼,下面......