免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項超值服

開通VIP
Map集合

|--Hashtable底層是哈希表數(shù)據(jù)結(jié)構(gòu),是線程同步的。不可以存儲null鍵,null值。

|--HashMap底層是哈希表數(shù)據(jù)結(jié)構(gòu),是線程不同步的??梢源鎯?span lang="EN-US">null鍵,null值。替代了Hashtable.

|--TreeMap底層是二叉樹結(jié)構(gòu),可以對map集合中的鍵進(jìn)行指定順序的排序。

 

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

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

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

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

特點(diǎn):要保證map集合中鍵的唯一性。

 

1,添加。

 put(key,value):當(dāng)存儲的鍵相同時,新的值會替換老的值,并將老值返回。如果鍵沒有重復(fù),返回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):通過指定鍵獲取對應(yīng)的值。如果返回null,可以判斷該鍵不存在。當(dāng)然有特殊情況,就是在hashmap集合中,是可以存儲nullnull值的。

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

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

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

map集合轉(zhuǎn)成set的方法:

Set keySet();

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

Entry就是Map接口中的內(nèi)部接口;

為什么要定義在map內(nèi)部呢?entry是訪問鍵值關(guān)系的入口,是map的入口,訪問的是map中的鍵值對。

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

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

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

      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()方法。

SetentrySet = map.entrySet();

        Iteratorit = entrySet.iterator();

        while(it.hasNext()){

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

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

        }

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

使用集合的技巧:

看到Array就是數(shù)組結(jié)構(gòu),有角標(biāo),查詢速度很快。

看到link就是鏈表結(jié)構(gòu):增刪速度快,而且有特有方法。addFirst; addLastremoveFirst(); removeLast()getFirst();getLast()

看到hash就是哈希表,就要想要哈希值,就要想到唯一性,就要想到存入到該結(jié)構(gòu)的中的元素必須覆蓋hashCodeequals方法。

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

比較的兩種方式:

一個是Comparable:覆蓋compareTo方法;

一個是Comparator:覆蓋compare方法。

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

 

集合什么時候用?

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

 

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

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

Collections它的出現(xiàn)給集合操作提供了更多的功能。這個類不需要創(chuàng)建對象,內(nèi)部提供的都是靜態(tài)方法。

靜態(tài)方法:

Collections.sort(list);//list集合進(jìn)行元素的自然順序排序。

Collections.sort(list,newComparatorByLen());//按指定的比較器方法排序。

classComparatorByLen implements Comparator<String>{

  public int compare(String s1,String s2){

      int temp = s1.length()-s2.length();

      return temp==0?s1.compareTo(s2):temp;

  }

}

Collections.max(list);//返回list中字典順序最大的元素。

int index =Collections.binarySearch(list,"zz");//二分查找,返回角標(biāo)。

Collections.reverseOrder();//逆向反轉(zhuǎn)排序。

Collections.shuffle(list);//隨機(jī)對list中的元素進(jìn)行位置的置換。

 

將非同步集合轉(zhuǎn)成同步集合的方法:Collections中的  XXXsynchronizedXXX(XXX);

ListsynchronizedList(list);

MapsynchronizedMap(map);

原理:定義一個類,將集合所有的方法加同一把鎖后返回。

 

Collection Collections的區(qū)別:

Collections是個java.util下的類,是針對集合類的一個工具類,提供一系列靜態(tài)方法,實現(xiàn)對集合的查找、排序、替換、線程安全化(將非同步的集合轉(zhuǎn)換成同步的)等操作。

Collection是個java.util下的接口,它是各種集合結(jié)構(gòu)的父接口,繼承于它的接口主要有SetList,提供了關(guān)于集合的一些操作,如插入、刪除、判斷一個元素是否其成員、遍歷等。

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
哪種Map遍歷方法更優(yōu)?!—Map遍歷方法的正確選擇
java Map及Map.Entry詳解
HashMap中的keySet方法與entrySet方法的區(qū)別
Java之通過Collections.synchronizedMap創(chuàng)建線程安全的HashMap
Java開發(fā)之集合框架Map
Alibaba開發(fā)手冊:集合遍歷的幾種方式
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服