Java——集合(Map集合的两种迭代)
生活随笔
收集整理的這篇文章主要介紹了
Java——集合(Map集合的两种迭代)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
一,Map集合的第一種迭代
Map集合的第一種迭代,通過get(key)方法,根據(jù)鍵去獲取值
package com.wsq.map;import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Set;public class Demo2_Iterator { /*** 通過查看Map集合的API發(fā)現(xiàn)沒有Iterator方法,那么雙列集合如何迭代呢?* Map集合的第一種迭代形式* 迭代==遍歷* */public static void main(String[] args) {Map<String, Integer> map = new HashMap<>();//雙列集合,鍵是String類型,值是Integer類型map.put("張三", 23);map.put("李四", 24);map.put("王五", 25);map.put("趙六", 26);/*//根據(jù)鍵,去獲取值 Integer wsq = map.get("張三"); //獲取map雙列集合中的鍵System.out.println(wsq); //打印輸出map雙列結(jié)合中的值*//** ①雙列集合的第一種遍歷形式,通過迭代器進(jìn)行遍歷//獲取所有鍵Set<String> keySet = map.keySet(); //map.keySet():獲取所有的鍵的集合,鍵是String類型Iterator<String> it = keySet.iterator(); //獲取迭代器 itwhile(it.hasNext()){ //判斷集合中是否有元素;iterator():如果迭代器具有多個元素,則返回 trueString key = it.next(); //獲取每一個鍵,鍵是String類型;next():返回迭代的下一個元素。Integer value = map.get(key); //根據(jù)鍵獲取值,值是Integer類型;get(key):指定鍵所映射的值;如果此映射不包含該鍵的映射關(guān)系,則返回 null System.out.println(key + "=" + value ); //打印鍵和值}*//*//②雙列集合的第二種遍歷形式,使用增強(qiáng)for循環(huán)遍歷 for (String key : map.keySet()) { //for(臨時變量,也就是想要獲取的變量,這里是想要通過鍵去獲取值,String key 表示的是每一個鍵:容器的名字,這里是 map.ketSet()) map.ketSet()是所有鍵的集合,拿到所有的鍵System.out.println(key + "=" + map.get(key)); //增強(qiáng)for循環(huán)迭代雙列集合第一種方式}*/}}二,Map集合的第二種迭代
Map集合的第二種迭代,根據(jù)鍵值對對象(也就是把鍵值對當(dāng)成一個對象),獲取鍵和值
也就是把雙列集合的鍵值對,變成單列集合的鍵值對對象,然后遍歷這個集合,獲取每一個鍵值對對象,根據(jù)鍵值對對象獲取鍵和值
解釋一下Map.Entry
package com.wsq.map;public class Demo4_MapEntry {public static void main(String[] args) {}}interface Inter{interface Inter2{public void show();} }class wsq implements Inter.Inter2{//這里的wsq類想繼承Inter2,當(dāng)出現(xiàn)Inter.Inter2,也就是說,Inter2是Inter的內(nèi)部接口//同樣的道理,Map.Entry,也就是說,Entry是Map里面的一個內(nèi)部接口@Overridepublic void show() { //實(shí)現(xiàn)接口要重寫人家里面的抽象方法}} package com.wsq.map;import java.security.KeyStore.Entry; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Set;public class Demo3_Iterator {/*** Map集合的第二種迭代,根據(jù)鍵值對對象,獲取鍵和值* A:鍵值對對象找鍵和值思路* * 獲取所以鍵值對對象的集合* * 遍歷鍵值對對象的集合,獲取到每一個鍵值對對象* * 根據(jù)鍵值對對象找鍵和值* */public static void main(String[] args) {Map<String, Integer> map = new HashMap<>();map.put("張三", 23);map.put("李四", 24);map.put("王五", 25);map.put("趙六", 26);/*//①通過迭代器去遍歷Set<Map.Entry<String, Integer>> entrySet = map.entrySet(); //Map.Entry說明Entry是Map的內(nèi)部接口,將鍵和值封裝成了Entry對象,并存儲在Set集合中;遍歷雙列集合里面存儲的都是Entry對象,所以通過迭代器迭代的應(yīng)該也是Entry對象Iterator<Map.Entry<String, Integer>> it = entrySet.iterator(); //通過迭代器去獲取每一個對象,<Map.Entry<String, Integer>>泛型的迭代應(yīng)該一致while(it.hasNext()){ //hasNext():如果迭代器具有多個元素,則返回 true;通過循環(huán)開始獲取每一個Entry對象Map.Entry<String, Integer> wsq = it.next(); //①父類引用指向子類對象;這里的wsq就代表每一個Entry對象//Entry<String, Integer> wsq = it.next(); //②直接獲取的是子類對象String key = wsq.getKey(); //Set<Map.Entry<K,V>>下有個getKey():返回與此項(xiàng)對應(yīng)的鍵;根據(jù)鍵值對對象獲取對應(yīng)的鍵Integer value = wsq.getValue(); //Set<Map.Entry<K,V>>下有個getValue():返回與此項(xiàng)對應(yīng)的值;根據(jù)鍵值對對象獲取對應(yīng)的值System.out.println(key + "=" + value);}*//*//②通過增強(qiáng)for循環(huán)遍歷 for (Map.Entry<String, Integer> wsq : map.entrySet()) { //for(定義一個臨時變量的數(shù)據(jù)類型跟Entry對象的數(shù)據(jù)類型一致也就是Map.Entry<String, Integer> wsq代表每一個鍵值對象 : )System.out.println(wsq.getKey() + "=" + wsq.getValue()); //通過鍵值對象來獲取它里面的getKey()和getValue();getKey():返回與此項(xiàng)對應(yīng)的鍵 getValue():返回與此項(xiàng)對應(yīng)的值}*/}}總結(jié)
以上是生活随笔為你收集整理的Java——集合(Map集合的两种迭代)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 颐和园旺季是什么时候
- 下一篇: Java——递归练习