迭代输出Map和List>的方法

时间:2023-03-08 16:08:54

一、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("","wang");//这个Map集合放进去一个<key,value>对
map.put("", "xiao");//这个Map集合又放进去一个<key,value>对
map.put("", "dong");
map.put("", "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>对

迭代输出Map和List<Map<String,Object>>的方法

参考:

http://blog.csdn.net/ipolaris/article/details/8930599

http://blog.csdn.net/zhuanshenweiliu/article/details/9180975