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

原文:http://www.cnblogs.com/wqing7/p/5896028.html

|–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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章