java怎么构造map_Java中Map结构
Colletion
Collection接口是劫和層次結(jié)構(gòu)中的根接口。一個(gè)Collection表示了一組對(duì)象,也稱其為元素(elements)。JDK不提供該接口的任何直接實(shí)現(xiàn),但是提供了具有更特定的子接口(例如:Set和List)Set:不包含重復(fù)元素的集合。集合中不能存在兩個(gè)元素e1和e2,使得
e1.equals(e2);
因此,集合中只能存在一個(gè)空元素。顧名思義,此接口是對(duì)應(yīng)數(shù)學(xué)中集合的抽象概念。List:可以包含重復(fù)元素的集合。并且該集合存在有序性(也稱為序列)。用戶可以精確控制列表中每個(gè)元素的插入位置,也可以通過其索引訪問元素。Java集合結(jié)構(gòu)。
MAP
Map是一個(gè)將鍵(Key)映射到值(Value)的對(duì)象。Map中不能包含重復(fù)的鍵,并且每個(gè)鍵最多可以映射一個(gè)值。Map代替了Dictionary類,不再作為一個(gè)純抽象類而是一個(gè)接口提供使用。
Map集合提供了三種集合視圖,其中有一組鍵(keySet)、一組值(values)和一組鍵值(entrySet)對(duì)。TreeMap:可以通過Map中的鍵來自然排序或在Map創(chuàng)建時(shí)通過提供的Comparator對(duì)Map進(jìn)行排序。
HashMap:此Map允許存在空值和空鍵存在,但不保證映射的順序。特別是,它不能保證順序會(huì)隨著時(shí)間的推移保持恒定。
在Java中,Map與Collection同級(jí),而并非與List和Set同級(jí)。Collection儲(chǔ)存單值而Map儲(chǔ)存鍵值對(duì)。
MAP常用方法
boolean isEmpty()
如果map中沒有任何鍵值對(duì)映射,則返回true。
boolean containsKey(Object key)
如果map中包含一個(gè)(最多只有一個(gè))特定鍵的映射,則返回true。
參數(shù)為:key - 要在map中測(cè)試的鍵。
boolean containsValue(Object value)
如果map中包含了一個(gè)或多個(gè)映射到鍵的值,則返回true。對(duì)于Map接口的大多數(shù)實(shí)現(xiàn),此方法需要消耗的時(shí)間與map的大小成線性增長(zhǎng)。
參數(shù)為:value - 要在map中測(cè)試的值。
V get(Object key)
返回特定鍵映射的值,如果該鍵在map中沒有對(duì)應(yīng)的映射,則返回null。
如果此map允許存放null值,則返回的null不一定表示該map不包含鍵的映射,也可能明確的指明該鍵的映射值為null。containsKey操作可以用來區(qū)分這兩種情況。
參數(shù)為:key - 一個(gè)鍵,該鍵所關(guān)聯(lián)的值會(huì)被返回。
V put(K key, V value)
將指定值與此映射中的指定鍵做關(guān)聯(lián)。如果map中的鍵已經(jīng)有對(duì)應(yīng)的映射值,則會(huì)將舊值替換為指定的值。(僅當(dāng)
m.containsKey(k);
返回true時(shí),才認(rèn)為map m包含鍵k的映射值)。該方法會(huì)返回鍵之前關(guān)聯(lián)的值,如果為null則該鍵沒有對(duì)應(yīng)的值。
參數(shù)為:key - 一個(gè)鍵,該鍵要與特定的值相關(guān)聯(lián)。
value - 一個(gè)值,該值要與特定的鍵相關(guān)聯(lián)。
V remove(Object key)
將指定鍵與其相關(guān)聯(lián)的一組鍵值對(duì)映射從map中移除。該方法會(huì)返回指定鍵所映射的值,如果該鍵沒有對(duì)應(yīng)的映射,則返回null。
與get方法相同,如果此map允許存在null值,則返回的null也可能明確的指明該鍵的映射值為null。
一旦調(diào)用此方法,則map中不再包含指定鍵與其映射值。
參數(shù)為:
key - 一個(gè)鍵,該鍵的一組鍵值對(duì)映射會(huì)被移出map。
void putAll(Map extends K, ? extends V> m)
將特定的map中的所有鍵值對(duì)復(fù)制到參數(shù)中給出的map中。對(duì)于從特定map中將鍵值對(duì)復(fù)制到給出的map中的操作等同于在給出的map中調(diào)用一次put(k, v)方法。如果在操作進(jìn)行過程中對(duì)特定的map進(jìn)行了修改,則不能保證此操作的正確性。
參數(shù)為:
m - 要存入map中的一組鍵值對(duì)映射組。
void clear()
移除map中的所有鍵值對(duì)。在執(zhí)行該方法后,該map會(huì)變成空。
Set> entrySet()
該方法返回此map中包含的映射的Set視圖。該set是基于原map的,所以map的數(shù)據(jù)改變會(huì)反映到set中,反之亦然。
如果在對(duì)set進(jìn)行迭代的時(shí)候修改了map(除非通過迭代器自身的remove操作或通過迭代器的setValue方法),則迭代的結(jié)果是不確定的。該set支持元素的刪除,刪除map中對(duì)應(yīng)的映射組。但不支持add或addAll操作。
Set keySet()
該方法返回此map中包含的key的Set視圖。該set是基于原map的,所以map的數(shù)據(jù)改變會(huì)反映到set中,反之亦然。
Collection values()
該方法返回此map中包含的values的collection視圖。該collection是基于原map的,所以map的數(shù)據(jù)改變會(huì)反映到collection中,反之亦然。
總結(jié)
以上是生活随笔為你收集整理的java怎么构造map_Java中Map结构的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java gc会回收类么_Java GC
- 下一篇: java.net.inetaddress