如何遍歷Map中的物件
眾所周知,java中Iterator、Collection和Map都是頂層介面。在遍歷集合Collection時,可以使用迭代器Iterator,加快遍歷速度。但是對於Map不是集合,內部不含有iterator,那麼該如何遍歷Map中的物件呢?
首先要明確,Map是將Key對映到Value的物件,每個鍵最多對應一個值,必須得保證key的唯一性。故當map中存在相同key時,值會被後者覆蓋掉。而且Map不同於Collection儲存單列元素,其儲存的是雙列元素,在沒有迭代器的情況下,取出雙列元素需要好好動動腦子。
這裡用到map中的Set<k> keySet()、Set<Map.Entry<K,V>>entrySet()
方法。前者返回map對映關係中所包含的key的檢視(set集合),後者將鍵和值的對映關係作為物件存在set集合中,型別是Map.Entry(介面,含有 k getKey()、v getValue()、v setValue(v value)
等方法)。
這樣,通過將map轉成set,就可以利用set集合中的迭代器獲取到每一個鍵,在獲取對應的值,進行輸出列印。
以簡單demo為例:
“cbacbaa”獲取該字串的每一個字母出現次數,要求列印結果為a(3)b(2)c(2).
設計思想:分別用keySet和entrySet實現。
package cn.ishuai.p1.map;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import java.util.TreeMap;
public class CountStr {
public static void main(String[] args) {
// TODO Auto-generated method stub
String s="sdfsdff";
char []cha=s.toCharArray();
Map<Character,Integer>map=new TreeMap<Character,Integer>();
for(char i:cha){
Integer value=map.get(i);
if(value==null) map.put(i, 1);
else map.put(i, value+1);
}
keySetNum(map);
entrySetNum(map);//兩種不同遍歷方式
}
private static void entrySetNum(Map<Character, Integer> map) {
// TODO Auto-generated method stub
Set<Map.Entry<Character, Integer>>set=map.entrySet();
Iterator<Map.Entry<Character,Integer>>it=set.iterator();
while(it.hasNext()){
Map.Entry<Character,Integer>me=it.next();
Character cha=me.getKey();
Integer inte=me.getValue();
System.out.println(cha+"("+inte+")");
}
}
private static void keySetNum(Map<Character, Integer> map) {
// TODO Auto-generated method stub
Set<Character>set=map.keySet();
Iterator<Character> it=set.iterator();
while(it.hasNext()){
char cha=(char) it.next();//換成character
Integer value=map.get(cha);
System.out.println(cha+"("+value+")");
}
}
}
結果:
a(3)
b(2)
c(2)
相關文章
- Java中如何遍歷Map物件的4種方法Java物件
- vue遍歷map物件Vue物件
- 【Java中遍歷Map物件的4種方法】Java物件
- Java遍歷Map物件的四種方式Java物件
- Java中Map的遍歷方法Java
- js的map遍歷和array遍歷JS
- java中遍歷map的集中方法Java
- java中遍歷Map的4種方法Java
- java Map Set遍歷Java
- 如何遍歷物件直接量中的各個屬性物件
- 集合框架-Map集合的遍歷框架
- Java遍歷Map集合的方法Java
- 26_map遍歷.goGo
- java Map遍歷最優Java
- JS 物件的遍歷JS物件
- JS中遍歷陣列、物件的方式JS陣列物件
- jquery遍歷得到的 Map 資料,jQuery
- map遍歷知識總結
- JS遍歷物件的方式JS物件
- 深入JS物件的遍歷JS物件
- React中兩種遍歷資料的方法(map、forEach)React
- 關於Map集合的遍歷總結
- List,Map在遍歷的時候removeREM
- thymeleaf模板 遍歷物件物件
- Qt遍歷子物件QT物件
- 遍歷陣列物件陣列物件
- Java中遍歷Map的兩種方法:keySet和entrySetJava
- JavaScript遍歷物件的屬性JavaScript物件
- 常見物件-字串的遍歷物件字串
- 物件和陣列的遍歷物件陣列
- java 遍歷map 方法 集合 五種的方法Java
- js如何遍歷陣列中的元素JS陣列
- Web前端遍歷物件應該如何操作呢?Web前端物件
- JS中陣列與物件的遍歷方法例項JS陣列物件
- 遍歷聚合物件中的元素——迭代器模式(四)物件模式
- 遍歷聚合物件中的元素——迭代器模式(三)物件模式
- jQuery遍歷函式,javascript中的each遍歷jQuery函式JavaScript
- 影片直播系統原始碼,java中Map遍歷的三種方式原始碼Java