乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      Map集合

       伊朗核心 2016-07-30

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

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

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

       

      Map集合存儲(chǔ)和Collection有著很大不同:

      Collection一次存一個(gè)元素;Map一次存一對(duì)元素。

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

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

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

       

      1,添加。

       put(key,value):當(dāng)存儲(chǔ)的鍵相同時(shí),新的值會(huì)替換老的值,并將老值返回。如果鍵沒(méi)有重復(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():返回長(zhǎng)度

        value get(key) :通過(guò)指定鍵獲取對(duì)應(yīng)的值。如果返回null,可以判斷該鍵不存在。當(dāng)然有特殊情況,就是在hashmap集合中,是可以存儲(chǔ)nullnull值的。

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

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

        原理:map中是沒(méi)有迭代器的,collection具備迭代器,只要將map集合轉(zhuǎn)成Set集合,可以使用迭代器了。之所以轉(zhuǎn)成set,是因?yàn)?span lang="EN-US">map集合具備著鍵的唯一性,其實(shí)set集合就來(lái)自于mapset集合底層其實(shí)用的就是map的方法。

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

      Set keySet();

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

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

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

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

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

      可以將map集合中的鍵都取出存放到set集合中。對(duì)set集合進(jìn)行迭代。迭代完成,再通過(guò)get方法對(duì)獲取到的鍵進(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()方法。

      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就是數(shù)組結(jié)構(gòu),有角標(biāo),查詢速度很快。

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

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

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

      比較的兩種方式:

      一個(gè)是Comparable:覆蓋compareTo方法;

      一個(gè)是Comparator:覆蓋compare方法。

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

       

      集合什么時(shí)候用?

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

       

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

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

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

      靜態(tài)方法:

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

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

      class ComparatorByLen 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ī)對(duì)list中的元素進(jìn)行位置的置換。

       

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

      List synchronizedList(list);

      Map synchronizedMap(map);

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

       

      Collection Collections的區(qū)別:

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

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

        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類似文章 更多