亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

JAVA,Map接口,迭代器Iterator

2019-11-14 15:17:58
字體:
來源:轉載
供稿:網友

1.    Map 接口概述

java.util.Map 接口描述了映射結構, Map 接口允許以鍵集、值集合或鍵 - 值映射關系集的形式查看某個映射的內容。

Java 自帶了各種 Map 類。 這些 Map 類可歸為三種類型:

   1. 通用 Map ,用于在應用程序中管理映射,通常在 java.util 程序包中實現

          * HashMap

          * Hashtable

          * PRoperties

           * LinkedHashMap

          * IdentityHashMap

          * TreeMap

          * WeakHashMap

          * ConcurrentHashMap

   2. 專用 Map ,您通常不必親自創建此類 Map ,而是通過某些其他類對其進行訪問

          * java.util.jar.Attributes

          * javax.print.attribute.standard.PrinterStateReasons

          * java.security.Provider

          * java.awt.RenderingHints

          * javax.swing.UIDefaults

   3. 一個用于幫助實現您自己的 Map 類的抽象類

          * AbstractMap

 

接口中的重要方法如下:

1,  覆蓋的方法

equals(Object o)               // 比較指定對象與此 Map 的等價性

hashCode()                     // 返回此 Map 的哈希碼

 

2,  Map 更新方法,可以更改 Map 的內容。

put(Object key, Object value)  // 添加鍵值對,若鍵已存在,則覆蓋舊值。

putAll(Map t)               // 將指定 Map 中的所有映射復制到此 map

remove(Object key)             // 從 Map 中刪除與 key 關聯的 value

clear()                       // 從 Map 中刪除所有映射

 

3,  返回視圖的 Map 方法:使用這些方法返回的對象,你可以遍歷和刪除 Map 的元素。

Set keySet()                // 返回 Map 中所包含鍵的 Set 視圖。

// 刪除 Set 中的 key 元素還將刪除 Map 中相應的映射(鍵和值)

Collection values()         // 返回 map 中所包含值的 Collection 視圖。

// 刪除 Collection 中的 value 元素還將刪除 Map 中相應的映射(鍵和值)

Set entrySet()             // 返回 Map 中所包含映射的 Set 視圖(鍵值對)。

Set 中的每個元素都是一個 Map.Entry 對象,可以使用 getKey() 和 getValue() 方法(還有一個 setValue() 方法)訪問 Map.Entry 對象的鍵元素和值元素

 

關于 Map.Entry 接口

Map 的 entrySet() 方法返回一個實現 Map.Entry 接口的對象集合。集合中每個對象都是底層 Map 中一個特定的鍵 / 值對。通過這個集合的迭代器,您可以獲得每一個條目 ( 唯一獲取方式 ) 的鍵或值并對值進行更改。

(1) Object getKey(): 返回條目的關鍵字

   (2) Object getValue(): 返回條目的值

   (3) Object setValue(Object value): 將相關映像中的值改為 value ,并且返回舊值

當條目通過迭代器返回后,除非是迭代器自身的 remove() 方法或者迭代器返回的條目的 setValue() 方法,其余對源 Map 外部的修改都會導致此條目集變得無效,同時產生條目行為未定義。

 

4,  Map 訪問和測試方法:這些方法檢索有關 Map 內容的信息但不更改 Map 內容。

get(Object key)             // 返回與指定鍵關聯的值 及此對象,若無,返回 null 。

boolean containsKey(Object key)     // 如果 Map 包含指定鍵的映射,則返回 true

boolean containsValue(Object value)  // 若此 Map 將一個或多個鍵映射到指定值,返回 true

isEmpty()                // 如果 Map 不包含鍵 - 值映射,則返回 true

int size()                  // 返回 Map 中的鍵 - 值映射的數目

 

 

幾乎所有通用 Map 都使用哈希映射。 這是一種將元素映射到數組的非常簡單的機制,您應了解哈希映射的工作原理,以便充分利用 Map 。

哈希映射結構由一個存儲元素的內部數組組成。 由于內部采用數組存儲,因此必然存在一個用于確定任意鍵訪問數組的索引機制。 實際上,該機制需要提供一個小于數組大小的整數索引值(即余數)。 該機制稱作哈希函數。 在 Java 基于哈希的 Map 中,哈希函數將對象轉換為一個適合內部數組的整數。您不必為尋找一個易于使用的哈希函數而大傷腦筋: 每個對象都包含一個返回整數值的 hashCode() 方法。 要將該值映射到數組,只需將其轉換為一個正值,然后在將該值除以數組大小后取余數即可。

哈希函數將任意對象映射到一個數組位置,但如果兩個不同的鍵映射到相同的位置,情況將會如何? 這是一種必然發生的情況。 在哈希映射的術語中,這稱作沖突。 Map 處理這些沖突的方法是在索引位置處插入一個鏈接列表,并簡單地將元素添加到此鏈接列表。

 

圖示:

  



迭代器(Iterator)

  迭代器是一種設計模式,它是一個對象,它可以遍歷并選擇序列中的對象,而開發人員不需要了解該序列的底層結構。迭代器通常被稱為“輕量級”對象,因為創建它的代價小。

  Java中的Iterator功能比較簡單,并且只能單向移動:

  (1) 使用方法iterator()要求容器返回一個Iterator。第一次調用Iterator的next()方法時,它返回序列的第一個元素。注意:iterator()方法是java.lang.Iterable接口,被Collection繼承。

  (2) 使用next()獲得序列中的下一個元素。

  (3) 使用hasNext()檢查序列中是否還有元素。

  (4) 使用remove()將迭代器新返回的元素刪除。

  Iterator是Java迭代器最簡單的實現,為List設計的ListIterator具有更多的功能,它可以從兩個方向遍歷List,也可以從List中插入和刪除元素。

  

 

  List接口有一個特有的方法,listIterator。

   使用Iterator迭代器缺點

 

    1. ListIteratoradd()方法,可以向List中添加對象,而Iterator不能

  2. ListIteratorIterator都有hasNext()next()方法,可以實現順序向后遍歷,但是ListIteratorhasprevious()previous()方法,可以實現逆向(順序向前)遍歷。Iterator就不可以。

  3. ListIterator可以定位當前的索引位置,nextIndex()previousIndex()可以實現。Iterator沒有此功能。

  4. 都可實現刪除對象,但是ListIterator可以實現對象的修改,set()方法可以實現。Iierator僅能遍歷,不能修改。

 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
4438全国亚洲精品在线观看视频| 日韩三级成人av网| 福利视频第一区| 91精品久久久久久久久久久久久久| 国产精品三级网站| 国产精品视频男人的天堂| 国产主播欧美精品| 欧美日韩色婷婷| 精品免费在线观看| 亚洲老板91色精品久久| 欧美丰满老妇厨房牲生活| 日韩极品精品视频免费观看| 茄子视频成人在线| 欧美二区在线播放| 国产精品视频久久| 日韩亚洲成人av在线| 亚洲欧美国产精品专区久久| 亚洲热线99精品视频| 国产91成人video| 97精品一区二区视频在线观看| 欧美激情xxxx性bbbb| 欧美一级淫片aaaaaaa视频| 欧美成人sm免费视频| 亚洲欧美国产精品专区久久| 操91在线视频| 亚洲日本成人女熟在线观看| 亚洲国产精品视频在线观看| 日韩中文综合网| 亚洲精品v欧美精品v日韩精品| 亚洲女人被黑人巨大进入| 国产一区二区三区在线| 日韩电影免费在线观看中文字幕| 91av福利视频| 亚洲成色999久久网站| 国产福利成人在线| 91精品国产自产91精品| 欧美精品一本久久男人的天堂| 国内外成人免费激情在线视频| 午夜精品理论片| 91香蕉国产在线观看| 成人深夜直播免费观看| 国产精品69久久久久| 久久天天躁狠狠躁夜夜av| 日韩av在线免费看| 丝袜一区二区三区| 中文字幕久热精品视频在线| 亚洲人成电影网站色xx| 欧美日韩福利在线观看| 国产精品一区二区三区毛片淫片| 日本久久久久久| 欧美日韩亚洲一区二| 亚洲精品福利视频| 成人欧美在线视频| 国产精品一二三在线| 精品人伦一区二区三区蜜桃网站| 欧美日韩中文字幕在线视频| 久久综合伊人77777蜜臀| 日韩av中文字幕在线免费观看| 国产精品爽爽ⅴa在线观看| 欧美成人一区在线| 国产精品伦子伦免费视频| 日韩免费av片在线观看| 亚洲电影在线观看| 欧美视频在线观看免费| 亚洲成人黄色在线观看| 成人免费网站在线看| 国产91精品青草社区| 日韩精品视频在线免费观看| 成人a在线观看| 久久久久久综合网天天| 成人性教育视频在线观看| 欧美日韩一区二区在线播放| 亚洲精品女av网站| 日韩欧美国产免费播放| 亚洲精品永久免费精品| 国产亚洲精品久久久| 国模视频一区二区三区| 亚洲成人动漫在线播放| 一本色道久久88综合日韩精品| 日韩成人在线视频| 午夜免费在线观看精品视频| 国产精品久久久久久久久久东京| 中文字幕精品www乱入免费视频| 国产91在线高潮白浆在线观看| 久久免费福利视频| 国产一区二区色| 国产精品福利在线观看网址| 在线观看国产精品淫| 国产精品久久中文| 自拍偷拍亚洲欧美| 午夜精品美女自拍福到在线| 韩国精品久久久999| 亚洲欧美在线一区| 日韩电影在线观看免费| 国产精品第100页| 日韩中文综合网| 久久影视电视剧免费网站清宫辞电视| 久久色在线播放| 国产色视频一区| 欧美亚洲免费电影| 高清欧美性猛交xxxx黑人猛交| 国产成人一区二区| 精品视频一区在线视频| 亚洲激情视频网站| 国产拍精品一二三| 欧美一级大片在线观看| 国产美女精品免费电影| 国产亚洲精品美女久久久| 欧美—级a级欧美特级ar全黄| 精品久久久香蕉免费精品视频| 亚洲人成网在线播放| 97超碰蝌蚪网人人做人人爽| 在线日韩精品视频| 日日骚av一区| 久久久亚洲国产天美传媒修理工| 国产视频精品自拍| 欧美视频中文字幕在线| 欧美日韩国产一中文字不卡| 久久精品成人动漫| 91亚洲国产成人久久精品网站| 亚洲男人7777| 国产精品欧美在线| 国产精品影片在线观看| 日韩欧美精品网址| 亚洲免费人成在线视频观看| 日韩乱码在线视频| 精品无人区太爽高潮在线播放| 欧美性极品xxxx做受| 91欧美精品成人综合在线观看| 色无极亚洲影院| 国产精品成人av在线| 亚洲综合中文字幕在线观看| 国产精品96久久久久久| 97在线看免费观看视频在线观看| 91亚洲精品久久久久久久久久久久| 欧美综合在线观看| 国产午夜精品免费一区二区三区| 欧美日韩一区二区在线| 亚洲天堂成人在线视频| 九九热最新视频//这里只有精品| 日韩欧美成人精品| 国产一区二区三区18| 色婷婷综合久久久久| 久久精品国产欧美激情| 亚洲bt欧美bt日本bt| 福利微拍一区二区| 清纯唯美日韩制服另类| 91av视频在线观看| 77777亚洲午夜久久多人| 亚洲精品欧美日韩专区| 欧美裸体xxxx极品少妇| 日本19禁啪啪免费观看www| 欧美华人在线视频| 国产精品专区h在线观看| 亚洲欧美中文日韩在线v日本| 欧美性猛交xxxx黑人猛交| 精品调教chinesegay| 亚洲天堂av图片| 国内揄拍国内精品| 欧美成人免费小视频| 日韩三级成人av网| 最近中文字幕日韩精品| 日韩有码在线播放| 日韩美女激情视频|