亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術文章
文章詳情頁

Java Map.get()返回指定鍵所映射的值

瀏覽:32日期:2022-08-15 16:00:15

Java 集合類中的 Map.get() 方法返回指定鍵所映射的值。如果此映射不包含該鍵的映射關系,則返回 null。

語法:

get(Object key))

參數(shù)說明:

key:是指定的 Map 集合中的鍵名。

典型應用

本示例使用 HashMap 類創(chuàng)建 Map 集合對象,并向集合中添加指定的內(nèi)容,然后使用 get 方法獲取指定鍵名的鍵值對象。代碼如下:

public static void main(String[] args){ Map map = new HashMap(); //定義Map集合對象 map.put('apple','新鮮的蘋果'); //向集合中添加對象 map.put('computer','配置優(yōu)良的計算機'); map.put('book','堆積成山的圖書'); Object get = map.get('apple'); //獲取指定鍵所映射的值 if(get instanceof String){ //判斷鍵值是否為String類型 String value = (String)get; //獲取指定的value值 System.out.println('在Map集合中鍵名apple的鍵值是:'+value); //將value值輸出 }}

運行結果如下:在Map集合中鍵名apple的鍵值是: 新鮮的蘋果

java中map的get方法key值類型的一個問題

描述: 在HashMap中取值的時候,key值是0,用hashMap.get(0),卻無論如何也取不到value,調(diào)試的時候仔細一看,key值的類型是Long型,然后傳0L,即順利取到值了。

分析:

Map<Long,String> map = new HashMap<>();map.put(0L, 'string');map.get(0);

代碼大概就是上面這個樣子。

在調(diào)用get方法的時候,會進入

public V get(Object key) { if (key == null) return getForNullKey(); Entry<K,V> entry = getEntry(key); return null == entry ? null : entry.getValue(); }

如果key值是0L(Long),那么進入get方法的時候,入?yún)ey值依然是0(Long),那么很順利的會在getEntry方法體內(nèi),通過相關的hash和比較操作(具體也比較簡單,不是重點不多說)返回預期的value值。

但是,如果key值是圖中的0(Integer),那么get方法被調(diào)用時的入?yún)⒕秃芷婀至?,如下?/p>

Java Map.get()返回指定鍵所映射的值

正如圖中調(diào)試信息一樣,key值為java/lang/Integer$IntegerCache,Integer內(nèi)部的一個私有類,緩存-127~128的數(shù)據(jù)(這個也不是重點),重點是這個方法不知道被誰調(diào)用了兩次,而且Key值都是這個值,直到第三次的時候,key值為0(Integer),當然了,即使這樣也自然找不到預期的value值了,因為在getEntry方法內(nèi),進行equals時,畢竟是Integer類型,是和key值比較不上的。

現(xiàn)在想不明白的是,這個get方法前兩次被誰調(diào)用的,希望哪位大佬知道,留個言解釋下。

我用javap命令查看了下,并沒有弄明白(主要是小弟道行太淺):

Java Map.get()返回指定鍵所映射的值

另外,我覺得可能key值是0的原因,然后用3000作為key值(put,get)試了下,結果還是這樣。

然后,我將代碼改成這樣:

Map<Integer,String> map = new HashMap<>();map.put(0, 'string');map.get(0);

就不會出現(xiàn)上面截圖的情況,第一次進入get方法(也只進入一次),key值就是0(Integer)。

然后猜測了下可能和Integer的緩存有關,這樣試了下:

Java Map.get()返回指定鍵所映射的值

斷點打在第二次get方法時,這時候,進入get方法體內(nèi)時,key值就是預期的0(Integer),當然,這是為什么,我還是不明白。

希望知道原因的前輩可以解答下,若日后搞明白了,我再來解釋。

到此這篇關于Java Map.get()返回指定鍵所映射的值的文章就介紹到這了,更多相關Java Map.get返回值內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持好吧啦網(wǎng)!

標簽: Java
相關文章:
主站蜘蛛池模板: 精品国产成人a在线观看 | 国产97碰免费视频 | 一级特黄录像绵费播放 | 九九热精品免费视频 | 92国产福利午夜757小视频 | 国产亚洲欧洲精品 | 高清国产在线播放成人 | 东京加勒比中文字幕波多野结衣 | 国产一区二区精品在线观看 | 免费播放拍拍视频在线观看 | 国产在线精品一区二区三区 | 国产亚洲精品aaa大片 | 琪琪五月天综合婷婷 | 久草在线视频福利 | 国产视频xxxx | 成熟热自由日本语亚洲人 | 欧美性高清在线 | 国产精品第8页 | 日韩中文字幕久久精品 | 毛片在线看网站 | 一级黄色影院 | 成在线人永久免费播放视频 | 一级特级欧美a毛片免费 | 日本在线播放一区 | 欧美黄色性生活 | 国产在线一区二区视频 | 欧美精品日韩一区二区三区 | 久热中文字幕在线观看 | 亚洲午夜视频 | 狠狠亚洲婷婷综合色香 | 久久国产精品免费一区二区三区 | 精品国产免费第一区二区 | 国产成人精品女人不卡在线 | 免费国产一级 | 欧美一区二区三区国产精品 | 午夜亚洲国产成人不卡在线 | 黄色成人在线视频 | 亚洲香蕉毛片久久网站老妇人 | 国产精品区牛牛影院 | 中文字幕有码热在线视频 | 国产最爽的乱淫视频国语对 |