日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

Java Map接口及其實現(xiàn)類原理解析

瀏覽:156日期:2022-09-04 11:13:56

Map接口

Map提供了一種映射關系,其中的元素是以鍵值對(key-value)的形式存儲的,能夠?qū)崿F(xiàn)根據(jù)key快速查找value;

Map中的鍵值對以Entry類型的對象實例形式存在;建(key值)不可重復,value值可以重復,一個value值可以和很多key值形成對應關系,每個建最多只能映射到一個值。

Map支持泛型,形式如:Map<K,V>

Map中使用put(K key,V value)方法添加

Map接口中定義的常用方法

具體使用在實現(xiàn)類中討論

int size();//獲取Map集合大小(即元素數(shù)量)boolean isEmpty();//判斷是否為空boolean containsKey(Object key);//判斷是否包含某個鍵boolean containsValue(Object value);//判斷是否包含某個值V get(Object key);//獲取某個鍵對應的值V put(K key, V value);//添加鍵值對(K,V)V remove(Object key);//移除某個鍵對應的鍵值對void putAll(Map<? extends K, ? extends V> m);//添加另一個Map集合void clear();//清空所有鍵值對Set<K> keySet();//獲取鍵的集合Collection<V> values();//獲取值的集合Set<Map.Entry<K, V>> entrySet();//獲取鍵值對實體的集合interface Entry<K,V>//Map中的內(nèi)部接口

HashMap

基于哈希表的 Map 接口的實現(xiàn)。此實現(xiàn)提供所有可選的映射操作,并允許使用 null 值和 null 鍵。(除了非同步和允許使用 null 之外,HashMap 類與 Hashtable 大致相同。)除實現(xiàn)了Map接口外還實現(xiàn)了Cloneable,Serializable,繼承了AbstractMap抽象類

此類不保證映射的順序,特別是它不保證該順序恒久不變。

特點:

鍵無序,唯一,類似于Set集合 值有序,可重復,類似于List 底層數(shù)據(jù)結構是哈希表,保證鍵唯一

允許鍵為null,值為null

// HashMap<String, Student> hm = new HashMap<String, Student>();// hm.put('2018050401', new Student('2018050401', '張三', 18, 80.0));// hm.put('2018050402', new Student('2018050402', '李四', 18, 80.0));// hm.put('2018050403', new Student('2018050403', '李四', 18, 80.0));// hm.put('2018050404', new Student('2018050404', '王五', 18, 80.0));// hm.put('2018050404', new Student('2018050404', '王五', 18, 80.0));// // // 方式一: 通過鍵找值// Set<String> keys = hm.keySet();// for (String key : keys) {// Student s = hm.get(key);// System.out.println(key + '|' + s.getId() + '|' + s.getName() + '|' + s.getAge() + '|' + s.getScore());// } HashMap<Student, String> hm = new HashMap<Student, String>(); hm.put(new Student('2018050401', '張三', 18, 80.0),'2018050401'); hm.put(new Student('2018050402', '李四', 18, 80.0),'2018050402'); hm.put(new Student('2018050403', '李四', 18, 80.0), '2018050403'); hm.put(new Student('2018050404', '王五', 18, 80.0), '2018050404'); hm.put(new Student('2018050404', '王五', 18, 80.0), '2018050404');// 方式二: 通過鍵值對對象找鍵找值 Set<Entry<Student, String>> keyValues = hm.entrySet(); for (Entry<Student, String> keyValue : keyValues) { Student s = keyValue.getKey(); String value = keyValue.getValue(); System.out.println(s.getId() + '|' + s.getName() + '|' + s.getAge() + '|' + s.getScore() + '=' + value); }

LinkedHashMap

Map 接口的哈希表和鏈表實現(xiàn),具有可預知的迭代順序

特點:

鍵有序,唯一, 值有序,可重復,類似于List

底層數(shù)據(jù)結構是哈希表和鏈表,哈希表保證鍵唯一,鏈表保證鍵有序

LinkedHashMap<Integer, String> lhm = new LinkedHashMap<Integer, String>(); lhm.put(01, '張三1'); lhm.put(02, '張三2'); lhm.put(03, '張三3'); lhm.put(04, '張三4'); lhm.put(05, '張三5');Set<Integer> keys = lhm.keySet(); for (Integer key : keys) { System.out.println(key + '|' + lhm.get(key)); }

TreeMap

基于紅黑樹(Red-Black tree)的 NavigableMap 實現(xiàn)。該映射根據(jù)其鍵的自然順序進行排序,或者根據(jù)創(chuàng)建映射時提供的 Comparator 進行排序,

具體取決于使用的構造方法。

特點:

鍵可排序,唯一, 值有序,可重復,類似于List 底層數(shù)據(jù)結構是自平衡的二叉樹,可排序

排序方式類似于TreeSet,分為自然排序和比較器排序,具體取決于使用的構造方法

TreeMap<Integer, String> tm = new TreeMap<Integer, String>(); tm.put(24, 'Hello1'); tm.put(14, 'Hello2'); tm.put(34, 'Hello3'); tm.put(124, 'Hello4'); tm.put(24, 'Hello5'); tm.put(24, 'Hello6'); tm.put(24, 'Hello7'); tm.put(244, 'Hello8'); tm.put(624, 'Hello9'); tm.put(24, 'Hello10'); Set<Integer> keys = tm.keySet(); for (Integer key : keys) { String value = tm.get(key); System.out.println(key + '|' + value); }

HashTable

此類實現(xiàn)一個哈希表,該哈希表將鍵映射到相應的值。任何非 null 對象都可以用作鍵或值

特點:

不允許null鍵和null值 線程安全,效率低

HashMap和Hashtable的區(qū)別:

HashMap是不安全的不同步的效率高的 允許null鍵和null值 Hashtable是安全的同步的效率低的 不允許null鍵和null值

底層都是哈希表結構

Hashtable<String, String> hashtable = new Hashtable<String, String>(); hashtable.put('劉備', '孫尚香'); hashtable.put('孫策', '大喬'); hashtable.put('周瑜', '小喬'); hashtable.put('呂布', '貂蟬'); System.out.println(hashtable); Enumeration<String> keys = hashtable.keys(); while (keys.hasMoreElements()) { String key = keys.nextElement(); String value = hashtable.get(key); System.out.println(key + '|' + value); }

WeakHashMap

以弱鍵 實現(xiàn)的基于哈希表的 Map。在 WeakHashMap 中,當某個鍵不再正常使用時,將自動移除其條目。更精確地說,對于一個給定的鍵,其映射的存在并不阻止垃圾回收器對該鍵的丟棄,這就使該鍵成為可終止的,被終止,然后被回收。丟棄某個鍵時,其條目從映射中有效地移除,因此,該類的行為與其他的 Map 實現(xiàn)有所不同。

WeakHashMap<String,String> whm = new WeakHashMap<>(); whm.put(new String('hello1'), 'world1'); whm.put(new String('hello2'), 'world2'); whm.put(new String('hello3'), 'world3'); whm.put('hello4', 'world3'); System.out.println(whm); System.gc(); System.runFinalization(); System.out.println(whm);

鍵是枚舉類型

EnumMap<Direction, String> em = new EnumMap<>(Direction.class); em.put(Direction.UP, '向上移動'); em.put(Direction.DOWN, '向下移動'); em.put(Direction.LEFT, '向左移動'); em.put(Direction.RIGHT, '向右移動');Set<Direction> keys = em.keySet(); for (Direction key : keys) { String value = em.get(key); System.out.println(key + '|' + value); }

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標簽: Java
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
欧美日一区二区| 国产一区二区三区久久久久久久久| www在线观看黄色| 久久精品系列| 成人精品视频| 日韩在线短视频| 亚洲成人不卡| 欧美成人综合| 尹人成人综合网| 久久av一区| 伊人精品久久| 日韩不卡一区二区| 自拍自偷一区二区三区| 日韩精品视频网站| 久久国产乱子精品免费女| 国产精品玖玖玖在线资源| 精品久久久久久久| 三级精品视频| 国产精品美女久久久浪潮软件| 丝袜亚洲精品中文字幕一区| 婷婷精品在线| 国产极品一区| 另类中文字幕国产精品| 在线综合亚洲| 亚洲精品大全| 国产精品美女久久久久久不卡| 国产一区二区三区亚洲| 亚洲精品88| 亚洲欧美综合| 蜜臀a∨国产成人精品| 欧美精品国产| 久久男人av资源站| 国产精品免费看| 欧美日韩精品一区二区三区在线观看| 国产成人在线中文字幕| 欧美日韩国产综合网| 日韩av中文字幕一区二区三区| 精品日本视频| 亚洲特色特黄| 亚洲乱码一区| 国产成人在线中文字幕| 不卡一区2区| 五月激激激综合网色播| 国产成人精品福利| 老司机精品久久| 精品视频97| 视频一区二区不卡| 精品国产欧美日韩| 另类国产ts人妖高潮视频| 麻豆一区二区99久久久久| 国产一区日韩一区| 91精品国产一区二区在线观看| 久久毛片亚洲| 中文字幕视频精品一区二区三区| 国产精品3区| 黄色日韩在线| 精品国产一区二区三区2021| 在线精品亚洲欧美日韩国产| 日韩精品一卡二卡三卡四卡无卡| 精品三级av| 国产精品免费看| 国产一区二区三区不卡视频网站 | 五月天久久777| 欧美亚洲tv| 91精品精品| 国产精品亲子伦av一区二区三区 | 蜜桃久久av一区| 午夜精品成人av| 久久激五月天综合精品| 久久精品高清| 免费一区二区三区在线视频| 在线视频免费在线观看一区二区| 久久久久伊人| 免费日本视频一区| 成人精品中文字幕| 欧美精品不卡| 色狠狠一区二区三区| 99久久久久国产精品| 国产精品igao视频网网址不卡日韩| 国产精品日韩| 国产亚洲一区二区手机在线观看 | 麻豆高清免费国产一区| 婷婷综合电影| 亚洲一区观看| 日韩av在线中文字幕| 国产欧美亚洲精品a| 中文字幕免费一区二区| 精品一区三区| 日韩中文字幕高清在线观看| 你懂的国产精品永久在线| 深夜日韩欧美| 久久亚洲一区| 国产农村妇女精品一二区| 久久久蜜桃一区二区人| 日本黄色精品| 国产精品久久久一区二区| 亚洲精品美女91| 中文在线一区| 韩日一区二区三区| 国产精品伦理久久久久久| 麻豆精品蜜桃视频网站| 欧美专区一区| 日韩黄色在线观看| 亚洲欧洲一区二区天堂久久| 久久久久蜜桃| 欧美日韩视频免费观看| а√天堂中文在线资源8| 久久尤物视频| 国产精品久久久久久久免费软件| 欧美视频二区| 国产九九精品| 国产精品亚洲综合久久| 国产日韩免费| 国产精品综合| 国产欧美日韩精品一区二区三区| 日韩av电影一区| 青青草国产精品亚洲专区无| 日本视频在线一区| 欧美综合精品| 欧美精品观看| 国产欧美二区| 国产精品中文字幕亚洲欧美 | 国产精品久久亚洲不卡| 国产三级一区| 欧美精品第一区| 精品一区二区三区的国产在线观看| 欧美激情五月| 91亚洲无吗| 久久wwww| 亚洲天堂资源| 免费国产自久久久久三四区久久| 性欧美69xoxoxoxo| 香蕉成人久久| 日韩av三区| 久久伊人国产| 国产传媒在线| 亚洲福利久久| 午夜宅男久久久| 日本中文字幕不卡| 国产精品毛片视频| 中文av在线全新| 国内激情久久| 视频一区在线播放| 深夜福利一区| 欧美国产极品| 国产福利片在线观看| 性欧美xxxx免费岛国不卡电影| 日韩天堂av| 日韩高清不卡一区| 精品精品国产三级a∨在线| 日韩高清中文字幕一区二区| 尤物网精品视频| 欧美三级第一页| 黄毛片在线观看| 9国产精品视频| 日韩av电影一区| av在线最新| 午夜国产欧美理论在线播放| 亚洲精选91| 国精品产品一区| 欧美午夜不卡| 欧美另类中文字幕| 成人影视亚洲图片在线| 欧美日韩四区| 国产精品一区二区三区美女 | 亚洲一区二区毛片| 婷婷亚洲成人| 国产不卡精品在线| 好看的亚洲午夜视频在线| 日本91福利区| 日韩精品专区| 亚洲精品护士| 日韩1区2区| 西西人体一区二区| 国产福利一区二区三区在线播放| 成人看片网站| 综合亚洲视频| av日韩中文| 在线精品视频一区| 激情久久一区二区| 日韩午夜av在线| 国产精品乱战久久久| 欧美亚洲激情| 国产精品久久久久久久久久久久久久久 | 国产精品一区毛片| 久久高清免费| 日韩精品视频在线看| 精品捆绑调教一区二区三区| 亚洲精品高潮| 999国产精品永久免费视频app| 奇米色欧美一区二区三区| 亚洲v在线看| 国产精品亚洲欧美一级在线| 激情五月色综合国产精品| 国产精品久久久久久久久久齐齐| 欧美jjzz| 久久这里只有| 色综合视频一区二区三区日韩 | 老色鬼久久亚洲一区二区| 国产一区二区久久久久|