黑马程序员——Java集合基础知识之Map
生活随笔
收集整理的這篇文章主要介紹了
黑马程序员——Java集合基础知识之Map
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?????android培訓、java培訓、期待與您交流!?? Map概念 要同時存儲兩個元素Key和Value,他們之間有映射關系,每個鍵不能重復,每個鍵只能映射到一個值。 當數據之間存在映射關系的時候,考慮使用Map集合。 ? Map常用方法 ? ? ?如果添加的鍵原來有值,后添加的值會覆蓋前面的值,并返回之前的值。put會返回來先添加的值,后添加的值會覆蓋原有的值。 Map?tm?=new?TreeMap(); tm.put?(key,?value);//MAP沒有add tm.remove?(key)?;//去除一個key和對應的value,若不存在key返回null tm.get?(key)?;//返回該Key的value tm.values?();?//返回所有value的集合 tm.keySet?();?//返回key的Set集合 HashTable 底層是哈西數據結構,不可以存入null鍵null值,線程同步。 ?HashMap 底層是哈西表數據結構,允許使用nul鍵和null值,線程不同步。效率高。 ?TreeMap ?底層是二叉樹結構,不同步,可以給鍵排序。 和Set很像,Set底層使用的就是Map結構。其實是平行x軸的函數。 ? Map元素取出方式 1.keyset() 返回set集合。迭代器:取出了set集合用迭代器取鍵。。。get(鍵)將map集合轉化成set,再取鍵取值。 2.EntrySet() 里面存放的時是關系,把關系取出來。返回Map.entry,將map集合中的映射關系存入到Set集合中。,entry接口是Map接口里面內部接口,Map需要直接訪問MapSet中的數據,內部嵌套類,沒有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里面存放的時映射關系,這個接口里面有gekKey和getValue的方法。 ? HashMap()和TreeMap() ? ? ?HashMap基于hashCode()的實現,查找速度最優,TreeMap是根據鍵的自然順序排列的,排列的順序是通過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李白=唐}*/? 結果是顯而易見的,TreeMap按照字母的自然順序排列了。 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?????android培訓、java培訓、期待與您交流!??
轉載于:https://www.cnblogs.com/shuawang/p/3729718.html
總結
以上是生活随笔為你收集整理的黑马程序员——Java集合基础知识之Map的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python进阶八_警告和异常
- 下一篇: 产品经理如何量化关键需求指标