黑马程序员技术交流社区
标题:
map集合中的entrySet 不是很理解
[打印本页]
作者:
陈波
时间:
2012-4-28 19:39
标题:
map集合中的entrySet 不是很理解
Set<Map.Entry<Student,String>> entrySet = tm.entrySet();
Iterator<Map.Entry<Student,String>> it = entrySet.iterator();
while(it.hasNext())
{
Map.Entry<Student,String> me = it.next();
Student stu = me.getKey();
String addr = me.getValue();
System.out.println(stu+":::"+addr);
}
}
}
这个代码不是很理解 为什么这么写呢 大家帮忙解释一下
作者:
张卯
时间:
2012-4-28 20:02
可以这样理解:
Set是个文件夹,里面装的是结婚证(Map.Entry),结婚证上写着男方(键)和女方(值),Map.Entry代表了这样一种对应关系,并且是一个Map.Entry算一对关系。
作者:
张成龙
时间:
2012-4-28 20:04
entrySet() 方法取得的值是 Set<Map.Entry<Student,String>>类型的,再Map.Entry<Student,String>看做一种类型数据,用迭代器对其进行迭代
然后就是取出对应的键和值。
作者:
光sail
时间:
2012-4-28 20:16
本帖最后由 光sail 于 2012-4-28 20:17 编辑
Set<Map.Entry<Student,String>> entrySet = tm.entrySet();
/*使用 tm.entrySet()方法获取set集合,集合里面放置的是映射的 collection 视图,键的类型是Student ,值是String
*/
Iterator<Map.Entry<Student,String>> it = entrySet.iterator();
//通过collection 视图的迭代器来获得映射项引用
while(it.hasNext())
{
Map.Entry<Student,String> me = it.next();
Student stu = me.getKey();
//获取Student类的对应的键
String addr = me.getValue();
////获取String类的对应的值
System.out.println(stu+":::"+addr);
}
}
}
作者:
孙天
时间:
2012-4-28 20:29
由于Map中没有迭代器,只有将map转成set,才可以使用迭代器,而set集合底层使用的就是map集合。
Set<key> keySet():获取map集合中所有的键的set集合。之所以返回set,是因为键是有唯性。
Set<Map.Entry<key,value>> entrySet():获取map集合中的所有的关系对象。类型是Map.Entry。
作者:
魏征
时间:
2012-4-28 21:33
Set<Map.Entry<Student,String>> entrySet = tm.entrySet();//Map类对象tm调用entrySet方法,它的返回值类型是值个Set类型的泛型是Map.Entry类型对象,MapEntry类对象entrySet是使Map对象tm的键值存在某种关系的值。
Iterator<Map.Entry<Student,String>> it = entrySet.iterator();//对Set集合对象entrySet进行迭代,这个迭代器泛型的是Set集合对象的泛型。
while(it.hasNext())
{
Map.Entry<Student,String> me = it.next();//设定Map.Entry对象me为指针
Student stu = me.getKey();//调用Map.Entry类方法getKey()返回的值类型为Map集合对象tm中的键。
String addr = me.getValue();//调用Map.Entry类方法getValue()返回的值类型为Map集合对象tm中的值。
System.out.println(stu+":::"+addr);
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2