Map提供的是一種雙列映射的存儲集合,它能夠提供一對一的數(shù)據(jù)處理能力,雙列中的第一列我們稱為key,第二列就是value,一個key只能夠在一個Map中出現(xiàn)最多一次,通過一個key能夠獲取Map中唯一一個與之對應(yīng)的value值,正是它的這種一對一映射的數(shù)據(jù)處理關(guān)系,在實際應(yīng)用中可以通過一個key快速定位到對應(yīng)的value。(推薦:java視頻教程)
綜合上面的概念,可以概括出以下幾個核心點:
1、Map存儲是以k-v鍵值對的方式進行存儲的,是雙列的
2、Map中的key具有唯一性,不可重復(fù)
3、每個key對應(yīng)的value值是唯一的
Java中Map是一個接口,它不繼承任何其他的接口,可以說它是java中所有Map的頂級父接口。它的設(shè)計理念完全遵循上面的規(guī)則,只是具體的實現(xiàn)類種類很多,對應(yīng)不同應(yīng)用場景的使用,所以可能具體細節(jié)以及設(shè)計上存在差異。
Java的Map中提供了三種Map視圖以便于展示Map中的內(nèi)容:
1、只包含key的Set集合
2、只包含value的Collection
3、同時包含key-value映射的EntrySet
另外需要額外注意:不能使用可變的對象作為Map的key,因為一旦該對象出現(xiàn)變化它會導(dǎo)致Map的行為無法預(yù)期(這里的變化指的是影響equals方法比較結(jié)果的變化);同時不能將Map本身作為一個Map的key,但是允許將Map本身作為value存入Map結(jié)構(gòu)中。