1. 程式人生 > >Map集合 把map 集合 轉成Set的方法

Map集合 把map 集合 轉成Set的方法

com 一個 刪除 取出 -h lin etl 判斷 表結構

|--Hashtable底層是哈希表數據結構,是線程同步的。不可以存儲null鍵,null值。

|--HashMap底層是哈希表數據結構,是線程不同步的。可以存儲null鍵,null值。替代了Hashtable.

|--TreeMap底層是二叉樹結構,可以對map集合中的鍵進行指定順序的排序。

Map集合存儲和Collection有著很大不同:

Collection一次存一個元素;Map一次存一對元素。

Collection是單列集合;Map是雙列集合。

Map中的存儲的一對元素:一個是鍵,一個是值,鍵與值之間有對應(映射)關系。

特點:要保證map集合中鍵的唯一性。

1,添加。

put(key,value):當存儲的鍵相同時,新的值會替換老的值,並將老值返回。如果鍵沒有重復,返回null。

void putAll(Map);

2,刪除。

void clear():清空

value remove(key) :刪除指定鍵。

3,判斷。

boolean isEmpty():

boolean containsKey(key):是否包含key

boolean containsValue(value) :是否包含value

4,取出。

int size():返回長度

value get(key) :通過指定鍵獲取對應的值。如果返回null,可以判斷該鍵不存在。當然有特殊情況,就是在hashmap集合中,是可以存儲null鍵null值的。

Collection values():獲取map集合中的所有的值。

5,想要獲取map中的所有元素:

原理:map中是沒有叠代器的,collection具備叠代器,只要將map集合轉成Set集合,可以使用叠代器了。之所以轉成set,是因為map集合具備著鍵的唯一性,其實set集合就來自於map,set集合底層其實用的就是map的方法。

map集合轉成set的方法:

Set keySet();

Set entrySet();//取的是鍵和值的映射關系。

Entry就是Map接口中的內部接口;

為什麽要定義在map內部呢?entry是訪問鍵值關系的入口,是map的入口,訪問的是map中的鍵值對。

---------------------------------------------------------

取出map集合中所有元素的方式一:keySet()方法。

可以將map集合中的鍵都取出存放到set集合中。對set集合進行叠代。叠代完成,再通過get方法對獲取到的鍵進行值的獲取。

Set keySet = map.keySet();

Iterator it = keySet.iterator();

while(it.hasNext()) {

Object key = it.next();

Object value = map.get(key);

System.out.println(key+":"+value);

}

--------------------------------------------------------

取出map集合中所有元素的方式二:entrySet()方法。

Set entrySet = map.entrySet();

Iterator it = entrySet.iterator();

while(it.hasNext()) {

Map.Entry me = (Map.Entry)it.next();

System.out.println(me.getKey()+"::::"+me.getValue());

}

--------------------------------------------------------

使用集合的技巧:

看到Array就是數組結構,有角標,查詢速度很快。

看到link就是鏈表結構:增刪速度快,而且有特有方法。addFirst; addLast; removeFirst(); removeLast(); getFirst();getLast();

看到hash就是哈希表,就要想要哈希值,就要想到唯一性,就要想到存入到該結構的中的元素必須覆蓋hashCode,equals方法。

看到tree就是二叉樹,就要想到排序,就想要用到比較。

比較的兩種方式:

一個是Comparable:覆蓋compareTo方法;

一個是Comparator:覆蓋compare方法。

LinkedHashSet,LinkedHashMap:這兩個集合可以保證哈希表有存入順序和取出順序一致,保證哈希表有序。

集合什麽時候用?

當存儲的是一個元素時,就用Collection。當存儲對象之間存在著映射關系時,就使用Map集合。

保證唯一,就用Set。不保證唯一,就用List

Map集合 把map 集合 轉成Set的方法