Map 詳解 兩種遍歷方式 以及原始碼解析

2021-08-21 05:01:48 字數 1755 閱讀 9335

由api可知,

map介面與collection介面不同:

map是雙列的,collection是單列的

map的鍵唯一,collection的子體系set是唯一的

map集合的資料結構值針對鍵有效,跟值無關,collection集合的資料結構是針對元素有效

map集合功能概述:

a.新增功能

如果鍵是第一次儲存,就直接儲存元素,返回null

如果鍵不是第一次存在,就用值把以前的值替換掉,返回以前的值

b.刪除功能

c.判斷功能

d.獲取功能

e.長度功能

map集合的遍歷之鍵找值(第一種遍歷方式)

鍵找值思路:

簡化如下:

map集合的遍歷之鍵值對物件找值(第二種遍歷方式)

鍵值對物件找值思路:

通過map.entryset()方法獲取鍵值對物件集合set>

遍歷鍵值對物件獲取鍵(key)和值(value)

map.entry介面是map介面內部的介面,在hashmap中有內部類entry實現了map.entry介面

簡化如下:

如何保證鍵的唯一?

hashmap當鍵(key)是物件(student)時,如果物件(student)沒有重寫hashcode和equals方法,則不會去重,即鍵值可能會有重複。如果需要去重,則需要重寫物件的hashcode和equals方法。

linkedhashmap是hashmap的子類

特點:底層是鍊錶,所以可實現怎麼存怎麼取。

treemap(存鍵的底層是二叉樹):

如何保證鍵的唯一?

treemap底層是二叉樹,所以

模擬treeset,保證鍵唯一有兩種方式,

物件繼承comparator介面,重寫compareto方法

在treemap中傳入comparetor物件,重寫compareto方法

hashmap與hashtable的區別(面試題)

共同點:底層都是hash演算法,都是雙列集合

區別:hashmap執行緒不安全,效率高,jdk1.2版本

hashtable是執行緒安全的,效率低,jdlk1.0版本的

hashtable不可以儲存null鍵和null值

hashmap可以儲存null鍵和null值

兩種Map遍歷方式

1 使用 jdk1.4中hashmap entryset 遍歷 存放key value鍵值對 maptempmap new hashmap tempmap.put a 1 tempmap.put b 2 tempmap.put c 3 iterator it tempmap.entryset ite...

兩種Map遍歷方式

map集合遍歷 1 使用 jdk1.4中hashmap entryset 遍歷 存放key value鍵值對 maptempmap new hashmap tempmap.put a 1 tempmap.put b 2 tempmap.put c 3 iterator it tempmap.entr...

雙列集合Map的兩種遍歷方式

通過元素中的鍵,獲取鍵所對應的值 分析步驟 獲取map中所有的鍵,由於鍵是唯一的,所以返回乙個set集合儲存所有的鍵。遍歷鍵的set集合,得到每乙個鍵。根據鍵,獲取鍵所對應的值。演示 mapmap new hashmap 往集合中新增鍵值對 map.put 海賊王 蒙奇d路飛 map.put 火影忍...