色yeye在线视频观看_亚洲人亚洲精品成人网站_一级毛片免费播放_91精品一区二区中文字幕_一区二区三区日本视频_成人性生交大免费看

當(dāng)前位置:首頁 > 嵌入式培訓(xùn) > 嵌入式學(xué)習(xí) > 講師博文 > java開發(fā):Map簡介

java開發(fā):Map簡介 時間:2019-04-22      來源:華清遠(yuǎn)見

將鍵映射到值的對象。一個映射不能包含重復(fù)的鍵;每個鍵最多只能映射到一個值。此接口取代 Dictionary 類,后者完全是一個抽象類,而不是一個接口。

Map 接口提供三種collection 視圖,允許以鍵集、值集或鍵-值映射關(guān)系集的形式查看某個映射的內(nèi)容。映射順序 定義為迭代器在映射的 collection 視圖上返回其元素的順序。某些映射實現(xiàn)可明確保證其順序,如 TreeMap 類;另一些映射實現(xiàn)則不保證順序,如HashMap 類。

注:將可變對象用作映射鍵時必須格外小心。當(dāng)對象是映射中某個鍵時,如果以影響 equals 比較的方式更改了對象的值,則映射的行為將是不確定的。此項禁止的一種特殊情況是不允許某個映射將自身作為一個鍵包含。雖然允許某個映射將自身作為值包 含,但請格外小心:在這樣的映射上 equals 和 hashCode 方法的定義將不再是明確的。

java開發(fā),Map簡介

所有通用的映射實現(xiàn)類應(yīng)該提供兩個“標(biāo)準(zhǔn)的”構(gòu)造方法:一個 void (無 參數(shù))構(gòu)造方法,用于創(chuàng)建空映射;一個是帶有單個 Map 類型參數(shù)的構(gòu)造方法,用于創(chuàng)建一個與其參數(shù)具有相同鍵-值映射關(guān)系的新映射。實際上,后一個構(gòu)造方法允許用戶復(fù)制任意映射,生成所需類的一個等價映射。盡 管無法強(qiáng)制執(zhí)行此建議(因為接口不能包含構(gòu)造方法),但是 JDK 中所有通用的映射實現(xiàn)都遵從它。

此接口中包含的“破壞”方法可修改其操作的映射,如果此映射不支持該操作,這些方法將拋出 UnsupportedOperationException。如果是這樣,那么在調(diào)用對映射無效時,這些方法可以(但不要求)拋出 UnsupportedOperationException。例如,如果某個不可修改的映射(其映射關(guān)系是“重疊”的)為空,則對該映射調(diào)用 putAll(Map) 方法時,可以(但不要求)拋出異常。

某些映射實現(xiàn)對可能包含的鍵和值有所限制。例如,某些實現(xiàn)禁止 null 鍵和值,另一些則對其鍵的類型有限制。嘗試插入不合格的鍵或值將拋出一個未經(jīng)檢查的異常,通常是 NullPointerException 或 ClassCastException。試圖查詢是否存在不合格的鍵或值可能拋出異常,或者返回 false;某些實現(xiàn)將表現(xiàn)出前一種行為,而另一些則表現(xiàn)后一種。一般來說,試圖對不合格的鍵或值執(zhí)行操作且該操作的完成不會導(dǎo)致不合格的元素被插入映射 中時,將可能拋出一個異常,也可能操作成功,這取決于實現(xiàn)本身。這樣的異常在此接口的規(guī)范中標(biāo)記為“可選”。

此接口是 Java Collections Framework 的成員。

Collections Framework 接口中的很多方法是根據(jù) equals 方法定義的。例如,containsKey(Object key) 方法的規(guī)范中寫道:“當(dāng)且僅當(dāng)此映射包含針對滿足 (key==null ? k==null : key.equals(k)) 的鍵 k 的映射關(guān)系時,返回 true”。不 應(yīng)將此規(guī)范解釋為:調(diào)用具有非空參數(shù) key 的 Map.containsKey 將導(dǎo)致對任意的鍵 k 調(diào)用 key.equals(k)。實現(xiàn)可隨意進(jìn)行優(yōu)化,以避免調(diào)用 equals,例如,可首先比較兩個鍵的哈希碼(Object.hashCode() 規(guī)范保證哈希碼不相等的兩個對象不會相等)。一般來說,只要實現(xiàn)者認(rèn)為合適,各種 Collections Framework 接口的實現(xiàn)可隨意利用底層 Object 方法的指定行為。

常用操作說明

void clear()

從此映射中移除所有映射關(guān)系(可選操作)。

boolean containsKey(Object key)

如果此映射包含指定鍵的映射關(guān)系,則返回 true。

boolean containsValue(Object value)

如果此映射將一個或多個鍵映射到指定值,則返回 true。

Set<Map.Entry<K,V>> entrySet()

返回此映射中包含的映射關(guān)系的 Set 視圖。

boolean equals(Object o)

比較指定的對象與此映射是否相等。

V get(Object key)

返回指定鍵所映射的值;如果此映射不包含該鍵的映射關(guān)系,則返回 null。

int hashCode()

返回此映射的哈希碼值。

boolean isEmpty()

如果此映射未包含鍵-值映射關(guān)系,則返回 true。

Set<K> keySet()

返回此映射中包含的鍵的 Set 視圖。

V put(K key, V value)

將指定的值與此映射中的指定鍵關(guān)聯(lián)(可選操作)。

void putAll(Map<? extends K,? extends V> m)

從指定映射中將所有映射關(guān)系復(fù)制到此映射中(可選操作)。

V remove(Object key)

如果存在一個鍵的映射關(guān)系,則將其從此映射中移除(可選操作)。

int size()

返回此映射中的鍵-值映射關(guān)系數(shù)。

Collection<V> values()

返回此映射中包含的值的 Collection 視圖。

Map的一般用法

1.聲明一個Map :

Map map = new HashMap();

2 .向map中放值 ,注意: map是key-value的形式存放的,如:

map.put("sa","dd");

3 .從map中取值 :

String str = map.get("sa").toString,

結(jié)果是: str = "dd'

4 .遍歷一個map,從中取得key和value :

Map m= new HashMap();

for(Object obj : map.keySet()){

Object value = map.get(obj );

}

上一篇:linux開發(fā):Linux下查看端口占用

下一篇:電子信息工程方向就業(yè)方向

熱點(diǎn)文章推薦
華清學(xué)員就業(yè)榜單
高薪學(xué)員經(jīng)驗分享
熱點(diǎn)新聞推薦
前臺專線:010-82525158 企業(yè)培訓(xùn)洽談專線:010-82525379 院校合作洽談專線:010-82525379 Copyright © 2004-2022 北京華清遠(yuǎn)見科技集團(tuán)有限公司 版權(quán)所有 ,京ICP備16055225號-5,京公海網(wǎng)安備11010802025203號

回到頂部

主站蜘蛛池模板: 免费无码又色又爽的视频软件 | 夜夜揉揉日日人人 | 国产小屁孩cao大人 久久99国产综合精品免费 | 东莞性视频88XXX | 97久久国产成人免费网站 | 国产无内肉丝精品视频 | 久久久久人妻精品一区蜜桃 | 蜜臀精品国产高清在线观看 | 亚洲精品~无码抽插 | 国产精品白丝久久av网站 | 国产SM调教折磨视频 | 日本免费大黄在线观看 | 老司机午夜免费福利视频 | 国产精品久久久久久久妇女 | 97成人精品区在线播放 | 中文人妻av久久人妻水蜜桃 | 3级毛片儿日本三级毛片 | 大胸美女被吃奶爽死视频 | 性欧美free德国极品 | 黑色丝袜国产精品 | 男女午夜猛烈啪啦啦视频 | 人妻丰满熟妇AV无码区动漫 | 女人黄色一级片 | 麻豆精品久久久久久中文字幕无码 | 日本一区二区在线高清观看 | 综合五月激情二区视频 | 亚洲AV午夜精品一区二区三区 | 波多野结衣的AV一区二区三区 | 成人网一区二区三区 | 最近中文字幕在线中文视频 | 久久精品爱爱 | 国产人妻精品无码一区街头街头 | 日本在线一区视频 | 业余 自由 性别 成熟偷窥 | jj男色网| 十八女毛片 | 国产美女口爆吞精普通话 | 日韩精品无码久久一区二区三 | 国产亚洲精品久久久久久无挡照片 | 日本少妇内射视频播放舔 | 国产成人香蕉久久久久 |