欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java中Map的entrySet()使用說(shuō)明

 更新時(shí)間:2020年09月25日 09:42:42   作者:努力學(xué)編程的小好  
這篇文章主要介紹了Java中Map的entrySet()使用說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧

由于Map中存放的元素均為鍵值對(duì),故每一個(gè)鍵值對(duì)必然存在一個(gè)映射關(guān)系。

Map中采用Entry內(nèi)部類(lèi)來(lái)表示一個(gè)映射項(xiàng),映射項(xiàng)包含Key和Value

Map.Entry里面包含getKey()和getValue()方法

Set<Entry<T,V>> entrySet()

該方法返回值就是這個(gè)map中各個(gè)鍵值對(duì)映射關(guān)系的集合。

可使用它對(duì)map進(jìn)行遍歷。

Iterator<Map.Entry<Integer, Integer>> it=map.entrySet().iterator();
 while(it.hasNext()) {
 Map.Entry<Integer,Integer> entry=it.next();
 int key=entry.getKey();
 int value=entry.getValue();
 System.out.println(key+" "+value);
 }

補(bǔ)充知識(shí):Map對(duì)象中的keyset()、entryset()和Map.Entry

一 Map對(duì)象中的keySet()和entrySet()

1. keySet()

public static void main(String[] args) {
 Map<String, String> map = new HashMap<String, String>();
 map.put("01", "qwe");
 map.put("02", "asd");
 map.put("03", "zxc");
 // 先獲取map集合的所有鍵的set集合,即為map中所有key值得集合
 Set<String> keySet = map.keySet();
 // 有了set集合,就可以獲取其迭代器
 Iterator<String> it = keySet.iterator();
 while (it.hasNext()) {
 String key = it.next();
 // 有了鍵可以通過(guò)map集合的get方法獲取其對(duì)應(yīng)的值
 String value = map.get(key);
 // 獲得key和value值
 System.out.println("key:" + key + "-->value:" + value);
 }
}

keySet()返回的是map對(duì)象的key值的set集合

2. entrySet()

public static void main(String[] args) {
 Map<String, String> map = new HashMap<String, String>();
 map.put("01", "qwe");
 map.put("02", "asd");
 map.put("03", "zxc");
 // 通過(guò)entrySet()方法將map集合中的映射關(guān)系取出(這個(gè)關(guān)系就是Map.Entry類(lèi)型)
 Set<Map.Entry<String, String>> entrySet = map.entrySet();
 // 將關(guān)系集合entryset進(jìn)行迭代,存放到迭代器中
 Iterator<Map.Entry<String, String>> it2 = entrySet.iterator();
 while (it2.hasNext()) {
  // 獲取Map.Entry關(guān)系對(duì)象me
  Map.Entry<String, String> me = it2.next();
  // 通過(guò)關(guān)系對(duì)像獲取key
  String key2 = me.getKey();
  // 通過(guò)關(guān)系對(duì)像獲取value
  String value2 = me.getValue();
  System.out.println("key:" + key2 + "-->value:" + value2);
 }
 }

entrySet()返回映射所包含的映射關(guān)系的Set集合(一個(gè)關(guān)系就是一個(gè)鍵-值對(duì)),就是把(key-value)作為一個(gè)整體一對(duì)一對(duì)地存放到Set集合當(dāng)中的。

3.總結(jié)

雖然使用keyset及entryset來(lái)進(jìn)行遍歷能取得相同的結(jié)果,但兩者的遍歷速度是有差別的。

keySet():迭代后只能通過(guò)get()取key;再根據(jù)key值取value。

entrySet():迭代后可以e.getKey(),e.getValue()取key和value。

同時(shí),keySet()的速度比entrySet()慢了很多,也就是keySet方式遍歷Map的性能不如entrySet性能好

為了提高性能,以后多考慮用entrySet()方式來(lái)進(jìn)行遍歷。

二 Map.Entry

Map是java中的接口,Map.Entry是Map的一個(gè)內(nèi)部接口。

Map提供了一些常用方法,如keySet()、entrySet()等方法,keySet()方法返回值是Map中key值的集合;entrySet()的返回值也是返回一個(gè)Set集合,此集合的類(lèi)型為Map.Entry。

Map.Entry是Map聲明的一個(gè)內(nèi)部接口,此接口為泛型,定義為Entry<K,V>。它表示Map中的一個(gè)實(shí)體(一個(gè)key-value對(duì))。接口中有g(shù)etKey(),getValue方法。

遍歷Map對(duì)象的常用方法除了以上兩種外,還有一種是單純的遍歷value值。Map有一個(gè)values方法,返回的是value的Collection集合。通過(guò)遍歷Collection也可以遍歷value。

public static void main(String[] args) {
 Map<String, String> map = new HashMap<String, String>();
 map.put("01", "qwe");
 map.put("02", "asd");
 map.put("03", "zxc");
 // 創(chuàng)建一個(gè)Collection集合,存放map的value值
 Collection<String> c = map.values();
 // 通過(guò)遍歷Collection也可以遍歷value
 Iterator<String> it = c.iterator();
 // 該方法只能遍歷value值,不能遍歷key值
 while (it.hasNext()) {
  Object value = it.next();
  System.out.println("value:" + value);
 }
 }

在遍歷Map對(duì)象時(shí),先從Map對(duì)象中取出key值之后,還必須每次重復(fù)返回到Map中取得相對(duì)的值,這是很繁瑣和費(fèi)時(shí)的。

幸運(yùn)的是,Map類(lèi)提供了一個(gè)稱為entrySet()的方法,這個(gè)方法返回一個(gè)Map.Entry實(shí)例化后的對(duì)象集。 接著,Map.Entry類(lèi)提供了一個(gè)getKey()方法和一個(gè)getValue()方法。

Set entries = map.entrySet( );
  if(entries != null) {
  Iterator iterator = entries.iterator( );
  while(iterator.hasNext( )) {
    Map.Entry entry =iterator.next( );
    Object key = entry.getKey( );
    Object value = entry.getValue();
    //
}
}

盡管增加了一行代碼,我們卻省略了許多對(duì)Map不必要的“get”調(diào)用。同時(shí),提供給開(kāi)發(fā)人員一個(gè)同時(shí)保持了關(guān)鍵字和其對(duì)應(yīng)的值的類(lèi)。Map.Entry同時(shí)也提供了一個(gè)setValue()方法,程序員可以使用它修改map里面的值。

以上這篇Java中Map的entrySet()使用說(shuō)明就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Mybatis分頁(yè)P(yáng)ageHelper插件代碼實(shí)例

    Mybatis分頁(yè)P(yáng)ageHelper插件代碼實(shí)例

    這篇文章主要介紹了Mybatis分頁(yè)P(yáng)ageHelper插件代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-12-12
  • 深入理解Java new String()方法

    深入理解Java new String()方法

    今天給大家?guī)?lái)的是關(guān)于Java的相關(guān)知識(shí),文章圍繞著Java new String()展開(kāi),文中有非常詳細(xì)的介紹及代碼示例,需要的朋友可以參考下
    2021-06-06
  • Spring?自定義propertyEditor的示例代碼

    Spring?自定義propertyEditor的示例代碼

    這篇文章主要介紹了Spring?自定義propertyEditor的示例代碼,本文結(jié)合示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-12-12
  • myBatis使用@GeneratedValue(generator?=?“...“,?strategy?=?...)注解

    myBatis使用@GeneratedValue(generator?=?“...“,?strategy?=?

    這篇文章主要介紹了myBatis使用@GeneratedValue(generator?=?“...“,?strategy?=?...)注解問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • Java編程實(shí)現(xiàn)數(shù)組轉(zhuǎn)成list及l(fā)ist轉(zhuǎn)數(shù)組的方法

    Java編程實(shí)現(xiàn)數(shù)組轉(zhuǎn)成list及l(fā)ist轉(zhuǎn)數(shù)組的方法

    這篇文章主要介紹了Java編程實(shí)現(xiàn)數(shù)組轉(zhuǎn)成list及l(fā)ist轉(zhuǎn)數(shù)組的方法,結(jié)合實(shí)例形式較為詳細(xì)的總結(jié)分析了java實(shí)現(xiàn)數(shù)組與list之間相互轉(zhuǎn)換的操作技巧,需要的朋友可以參考下
    2017-09-09
  • Window搭建部署RocketMQ步驟詳解

    Window搭建部署RocketMQ步驟詳解

    這篇文章主要介紹了Window搭建部署RocketMQ步驟詳解,RocketMq是一個(gè)由阿里巴巴開(kāi)源的消息中間件,脫胎去阿里每部使用的MetaQ,在設(shè)計(jì)上借鑒了Kafka。,需要的朋友可以參考下
    2019-06-06
  • 超詳細(xì)講解Java秒殺項(xiàng)目登陸模塊的實(shí)現(xiàn)

    超詳細(xì)講解Java秒殺項(xiàng)目登陸模塊的實(shí)現(xiàn)

    這是一個(gè)主要使用java開(kāi)發(fā)的秒殺系統(tǒng),項(xiàng)目比較大,所以本篇只實(shí)現(xiàn)了登陸模塊,代碼非常詳盡,感興趣的朋友快來(lái)看看
    2022-03-03
  • Java之Rsync并發(fā)遷移數(shù)據(jù)并校驗(yàn)詳解

    Java之Rsync并發(fā)遷移數(shù)據(jù)并校驗(yàn)詳解

    這篇文章主要介紹了Java之Rsync并發(fā)遷移數(shù)據(jù)并校驗(yàn)詳解,本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • 一文讀懂Jvm類(lèi)加載機(jī)制

    一文讀懂Jvm類(lèi)加載機(jī)制

    這篇文章主要介紹了一文讀懂Jvm類(lèi)加載機(jī)制,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-07-07
  • Java實(shí)現(xiàn)撲克牌程序

    Java實(shí)現(xiàn)撲克牌程序

    這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)撲克牌程序,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-10-10

最新評(píng)論