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