欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

淺談HashMap、HashTable的key和value是否可為null

 更新時間:2020年09月22日 11:17:46   作者:qingmengwuhen1  
這篇文章主要介紹了淺談HashMap、HashTable的key和value是否可為null,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

結(jié)論:

HashMap對象的key、value值均可為null。

HahTable對象的key、value值均不可為null。

且兩者的的key值均不能重復(fù),若添加key相同的鍵值對,后面的value會自動覆蓋前面的value,但不會報錯。

public class Test {
 
 public static void main(String[] args) {
 Map<String, String> map = new HashMap<String, String>();//HashMap對象
 Map<String, String> tableMap = new Hashtable<String, String>();//HashTable對象
 
 map.put(null, null);
 System.out.println("hashMap的[key]和[value]均可以為null:" + map.get(null));
 
 try {
 tableMap.put(null, "3");
 System.out.println(tableMap.get(null));
 } catch (Exception e) {
 System.out.println("【ERROR】:hashTable的[key]不能為null");
 }
 
 try {
 tableMap.put("3", null);
 System.out.println(tableMap.get("3"));
 } catch (Exception e) {
 System.out.println("【ERROR】:hashTable的[value]不能為null");
 }
 } 
}

運(yùn)行結(jié)果:

hashMap的[key]和[value]均可以為null:null

【ERROR】:hashTable的[key]不能為null

【ERROR】:hashTable的[value]不能為null

補(bǔ)充知識:hashmap判斷是否存在key時,使用get(key)==null判斷還是containsKey?

java中hashmap(key,value)的key和value都可以是null

我們看hashmap中g(shù)et()和containskey()的方法:

public V get(Object key) {

Node

結(jié)論

如果java程序?qū)?key不存在和key存在但是存的值是null這兩種情況處理相同一視同仁,則可以直接使用

T t = map.get(key);
if(t==null){
//key不存在,或者存的值是null
}else{
//key存在
}

代替:

if(map.containskey(key)){
//key 存在
}else{
//不存在
}
T t = map.get(key);
if(t==null){
//存的值是null
}

如果java程序需要區(qū)分存的值是null和key不存在這兩種情況,則需要使用:

if(map.containskey(key)){
//key 存在
}else{
//不存在
}
T t = map.get(key);
if(t==null){
//存的值是null
}

以上這篇淺談HashMap、HashTable的key和value是否可為null就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 解決Tomcat修改get提交請求亂碼問題

    解決Tomcat修改get提交請求亂碼問題

    這篇文章主要介紹了Tomcat修改get提交請求亂碼問題的解決方案,需要的朋友參考下
    2017-04-04
  • SpringBoot中TransactionTemplate事務(wù)管理的實(shí)現(xiàn)

    SpringBoot中TransactionTemplate事務(wù)管理的實(shí)現(xiàn)

    Spring Boot提供了多種方式來管理事務(wù),其中之一是使用TransactionTemplate,本文主要介紹了SpringBoot中TransactionTemplate事務(wù)管理的實(shí)現(xiàn),具有一定的參考價值,感興趣的可以了解一下
    2024-04-04
  • Java實(shí)現(xiàn)冪等性校驗(yàn)的示例代碼

    Java實(shí)現(xiàn)冪等性校驗(yàn)的示例代碼

    我們在做web應(yīng)用的時候通常會遇到前端提交按鈕重復(fù)點(diǎn)擊的場景,在某些新增操作上就需要做冪等性限制來保證數(shù)據(jù)的可靠性,所以本文主要介紹了如何使用java?aop實(shí)現(xiàn)冪等性校驗(yàn),需要的可以參考下
    2024-02-02
  • Java優(yōu)先隊(duì)列?priority?queue

    Java優(yōu)先隊(duì)列?priority?queue

    本文主要介紹了Java優(yōu)先隊(duì)列?priority?queue,優(yōu)先隊(duì)列是一種特殊的數(shù)據(jù)結(jié)構(gòu)隊(duì)列中每一個元素都被分配到一個優(yōu)先權(quán)值,出隊(duì)順序按照優(yōu)先權(quán)值來劃分。一般有兩種出隊(duì)順序高優(yōu)先權(quán)出隊(duì)或低優(yōu)先權(quán)出隊(duì),想了解具體內(nèi)容的小伙伴可以參考下文內(nèi)容,希望對你有所幫助
    2021-12-12
  • Java 覆蓋equals時總要覆蓋hashcode

    Java 覆蓋equals時總要覆蓋hashcode

    這篇文章主要介紹了Java 覆蓋equals時總要覆蓋hashcode的相關(guān)資料,這里附有實(shí)例代碼,具有參考價值,需要的朋友可以參考下
    2016-12-12
  • JAVA十大排序算法之希爾排序詳解

    JAVA十大排序算法之希爾排序詳解

    這篇文章主要介紹了java中的希爾排序,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-08-08
  • SpringCloud中的Feign詳解

    SpringCloud中的Feign詳解

    這篇文章主要介紹了SpringCloud中的Feign詳解,Feign是一個聲明式的Web Service客戶端,以Java接口注解的方式調(diào)用Http請求,同時Feign整合了Ribbon和Hystrix,實(shí)現(xiàn)負(fù)載均衡與容斷功能,需要的朋友可以參考下
    2023-09-09
  • java中form以post、get方式提交數(shù)據(jù)中文亂碼問題總結(jié)

    java中form以post、get方式提交數(shù)據(jù)中文亂碼問題總結(jié)

    這篇文章主要介紹了java中form以post、get方式提交數(shù)據(jù)中文亂碼問題總結(jié),需要的朋友可以參考下
    2014-10-10
  • java微信小程序步數(shù)encryptedData和開放數(shù)據(jù)解密的實(shí)現(xiàn)

    java微信小程序步數(shù)encryptedData和開放數(shù)據(jù)解密的實(shí)現(xiàn)

    這篇文章主要介紹了java微信小程序步數(shù)encryptedData和開放數(shù)據(jù)解密的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • 基于SpringBoot開機(jī)啟動與@Order注解

    基于SpringBoot開機(jī)啟動與@Order注解

    這篇文章主要介紹了SpringBoot開機(jī)啟動與@Order注解,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-09-09

最新評論