一、Map<String,Object>
String:key的類型
Object:value的類型,value可能是String,或者int類型,什么類型都可以
對於Map接口來說,本身不能直接迭代輸出,因為Map的每個位置存放的是一對值(key,value),迭代每次只能輸出一個值
需要先取到key的集合,再根據key迭代輸出value
迭代方法:
1、foreach
public static void main(String[] args) { String a="aaa"; int b=10; Map<String,Object> map=new HashMap<String, Object>() ; map.put("a",a); map.put("b", b); //1、keySet() Set<String> set=map.keySet(); for(String key:set) { System.out.println(key+":"+map.get(key)); } //2、entrySet() Set<Entry<String,Object>> entries =map.entrySet(); for(Entry<String,Object> entry:entries ){ System.out.println(entry.getKey()+":"+entry.getValue()); } }
2、Iterator(推薦)
Map<String,String> map=new HashMap<String,String>(); map.put("mldn","www.mldn.com"); map.put("java","www.java.com"); Set<String> keys=map.keySet(); Iterator<String> iter=keys.iterator(); while(iter.hasNext()) { System.out.println(iter.next().getKey()); }
keySet():遍歷Map key-value比較習慣的方式是先獲取Map中的所有key值,然后根據key,依次從Map中去數據
EntrySet():Map接口中還有一個Entry<K,V>的接口,對應的還有一個 Set<Map.Entry<K, V>> entrySet()方法。
也就是說其實Map中的每條key-value數據對應着一個Entry,這樣的話遍歷Map其實就是要取出每個Entry
二、List<Map<String,Object>>
public static void main(String[] args) { List<Map<String,Object>> list=new ArrayList<Map<String,Object>>();//List集合中存放Map集合 Map<String,Object> map=new HashMap<String,Object>();//定義一個Map集合 map.put("1","wang");//這個Map集合放進去一個<key,value>對 map.put("2", "xiao");//這個Map集合又放進去一個<key,value>對 map.put("3", "dong"); map.put("4", "haha");//這個Map集合共有4個<key,value>對 list.add(map);//將這一條map集合放進List集合里 for(Map<String,Object> m:list){ //取list集合里的那一條Map集合 for(String s:m.keySet()){ //取map集合里的String類型的key, System.out.println(m.get(s));//根據key迭代輸出value } } }
下面是list集合里的那一條map集合,里面4個<key,value>對
參考:
http://blog.csdn.net/ipolaris/article/details/8930599
http://blog.csdn.net/zhuanshenweiliu/article/details/9180975