黑马程序员——Java集合基础知识之Map
生活随笔
收集整理的這篇文章主要介紹了
黑马程序员——Java集合基础知识之Map
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?????android培訓(xùn)、java培訓(xùn)、期待與您交流!?? Map概念 要同時存儲兩個元素Key和Value,他們之間有映射關(guān)系,每個鍵不能重復(fù),每個鍵只能映射到一個值。 當(dāng)數(shù)據(jù)之間存在映射關(guān)系的時候,考慮使用Map集合。 ? Map常用方法 ? ? ?如果添加的鍵原來有值,后添加的值會覆蓋前面的值,并返回之前的值。put會返回來先添加的值,后添加的值會覆蓋原有的值。 Map?tm?=new?TreeMap(); tm.put?(key,?value);//MAP沒有add tm.remove?(key)?;//去除一個key和對應(yīng)的value,若不存在key返回null tm.get?(key)?;//返回該Key的value tm.values?();?//返回所有value的集合 tm.keySet?();?//返回key的Set集合 HashTable 底層是哈西數(shù)據(jù)結(jié)構(gòu),不可以存入null鍵null值,線程同步。 ?HashMap 底層是哈西表數(shù)據(jù)結(jié)構(gòu),允許使用nul鍵和null值,線程不同步。效率高。 ?TreeMap ?底層是二叉樹結(jié)構(gòu),不同步,可以給鍵排序。 和Set很像,Set底層使用的就是Map結(jié)構(gòu)。其實是平行x軸的函數(shù)。 ? Map元素取出方式 1.keyset() 返回set集合。迭代器:取出了set集合用迭代器取鍵。。。get(鍵)將map集合轉(zhuǎn)化成set,再取鍵取值。 2.EntrySet() 里面存放的時是關(guān)系,把關(guān)系取出來。返回Map.entry,將map集合中的映射關(guān)系存入到Set集合中。,entry接口是Map接口里面內(nèi)部接口,Map需要直接訪問MapSet中的數(shù)據(jù),內(nèi)部嵌套類,沒有Map就沒有Map.entry. Map<String?,?String?>?tm?=new?TreeMap?(); tm.put?("b李白",?"唐")?; tm.put?("a李白",?"唐")?; tm.put?("杜甫",?"唐")?; tm.put?("蘇軾",?"宋")?; //利用keyset()方法來獲取鍵 Set<String?>?ketset?=tm?.keySet?(); Iterator<String?>?it?=ketset?.iterator?(); while(it?.hasNext?()){ ??????????String key?=it?.next?(); ??????????System?.out.println(?key+?"="+?tm.?get(key?)); } //利用entrySet()方法獲取Map的鍵值對 ??????????Set?<Map?.Entry?<String?,?String?>>?enterset?=tm?.entrySet?(); ???????????for(Map?.Entry?<String?,?String?>?me?:enterset?) ???????????????????System?.out.println(?me.?getKey()+"=="+me.getValue())?; ???????????} ? } Map.Entry里面存放的時映射關(guān)系,這個接口里面有g(shù)ekKey和getValue的方法。 ? HashMap()和TreeMap() ? ? ?HashMap基于hashCode()的實現(xiàn),查找速度最優(yōu),TreeMap是根據(jù)鍵的自然順序排列的,排列的順序是通過comparable或者comparator決定,treeMap是唯一具有subMap的Map。 ? ? ? ? ???//定義TreeMap Map?<String?,?String?>?tm?=?new?TreeMap?<String?,?String?>()?; tm?.put?(?"b李白",?"唐")?; tm?.put?(?"a李白",?"唐")?; tm?.put?(?"杜甫",?"唐")?; tm?.put?(?"蘇軾",?"宋")?; //定義一個HashMap Map?<String?,String?>?hm?=?new?HashMap?<String?,?String?>()?; hm?.putAll?(?tm)?;//將?tm中的元素全部裝入?hm中 System?.out?.println?(?tm)?; System?.out?.println?(?hm)?; /*TreeMap: {a李白=唐, b李白=唐, 杜甫=唐, 蘇軾=宋} HashMap: {杜甫=唐, 蘇軾=宋, a李白=唐, b李白=唐}*/? 結(jié)果是顯而易見的,TreeMap按照字母的自然順序排列了。 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?????android培訓(xùn)、java培訓(xùn)、期待與您交流!??
轉(zhuǎn)載于:https://www.cnblogs.com/shuawang/p/3729718.html
總結(jié)
以上是生活随笔為你收集整理的黑马程序员——Java集合基础知识之Map的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python进阶八_警告和异常
- 下一篇: Java Script基础(九) 下拉列