亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在線等!請問以下這兩種方式有什么具體的區別?感激不盡

在線等!請問以下這兩種方式有什么具體的區別?感激不盡

郎朗坤 2019-06-09 11:09:48
請問這兩種實現方式有什么具體的區別?2.HashMapmap1=newHashMap();Mapmap2=newHashMap();3.上面的map1和map2的實現具體有什么區別嗎?
查看完整描述

2 回答

?
慕斯王

TA貢獻1864條經驗 獲得超2個贊

newHashMap()語句是創建泛型類HashMap的一個實例,map1和map2是引用,它們的類型不同,但它們都指向HashMap實例。
引用map1的類型就是HashMap泛型類,這沒什么好說的。
引用map2的類型是Map泛型接口,HashMap泛型類實現了Map泛型接口,所以Map泛型接口類型的引用可以指向HashMap實例。
二者指向的實例類型是一樣的,但因為map1和map2類型不一樣,所以可以調用的方法不一樣,map1可以調用HashMap的所有方法,包括Map的所有方法,但map2只能調用Map的方法,不能調用其他HashMap方法,雖然它指向的是一個HashMap對象。
                            
查看完整回答
反對 回復 2019-06-09
?
白衣染霜花

TA貢獻1796條經驗 獲得超10個贊

題主想問的是聲明變量mp1是HashMap類型,和map2的Map類型之間的區別嗎?
還是建議樓主買本書,或者找個教程看看,這類問題過于基礎,還是應該首先自己解決。
等號前面的是變量聲明,就是說這個變量應該是什么類型的變量,等號右邊是變量具體的實例,也就是實際上這個變量是什么東西。
對于題主的問題map1和map2實際上都是HashMap的實例,所以沒有區別。但是在聲明變量的時候一個是Map,一個是HashMap
Map是接口類,什么是接口類,請百度。HashMap是接口Map的具體實現類。
Map還有其他的實現類,比如:HashTable,ConcurrentHashMap等等..
map1和map2有什么區別?map2=newHashTable(),mp2=newConcurrentHashMap()都是對的。map1則只能是map1=newHashMap();因為map1聲明的變量類型是HashMap;而Map相當于是HashMap,HashTable,ConcurrentHashMap的父類,用父類聲明,其具體的實例可以是其任意子類。
子類擁有接口父類的所有方法實現,但不同的子類有各自不同的實現方式,以應對不同的場景,各個具體實現區別請百度。
針對本題,兩種聲明方式,在使用上沒有什么區別
                            
查看完整回答
反對 回復 2019-06-09
  • 2 回答
  • 0 關注
  • 282 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號