黑马程序员技术交流社区
标题:
entrySet问题
[打印本页]
作者:
mulua
时间:
2013-7-4 17:26
标题:
entrySet问题
Set<Map.Entry<String, Integer>>entrySet = map.entrySet();
Iterator<Map.Entry<String,Integer>> iterator = entrySet.iterator();
while (iterator.hasNext())
{
Map.Entry<String, Integer> entry= iterator.next();
String name=entry.getKey();
int age = entry.getValue();
System.out.println(name+":::"+age);
if (name.equals("zhangsan"))
{
entry.setValue(88);
}
System.out.println(name+":::"+age);
}
复制代码
为什么entry.setValue(88);改不了值呢
QQ截图20130704172502.png
(23.9 KB, 下载次数: 0)
下载附件
2013-7-4 17:26 上传
作者:
oxf974025918
时间:
2013-7-4 17:47
map.entrySet()怎么来的?
作者:
mulua
时间:
2013-7-4 17:51
package it;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
public class A
{
public static void main(String[] args)
{
Map<String, Integer> map = new HashMap<String,Integer>();
map.put("zhangsan", 18);
map.put("lisi", 21);
map.put("wangwu", 19);
map.put("zhouliu", 46);
// System.out.println(map.size());
/*//通过keySet取出
Set<String> keySet = map.keySet();
Iterator<String> it = keySet.iterator();
while (it.hasNext())
{
String name = it.next();
int age = map.get(name);
//System.out.println(name+":::"+age);
}*/
//通过entrySet取出
Set<Map.Entry<String, Integer>>entrySet = map.entrySet();
Iterator<Map.Entry<String,Integer>> iterator = entrySet.iterator();
while (iterator.hasNext())
{
Map.Entry<String, Integer> entry= iterator.next();
String name=entry.getKey();
int age = entry.getValue();
System.out.println(name+":::"+age);
if (name.equals("zhangsan"))
{
entry.setValue(88);
}
System.out.println(name+":::"+age);
}
}
}
复制代码
作者:
王洪波
时间:
2013-7-4 21:13
public class Snippet
{
public static void main(String[] args)
{
Map<String, Integer> map = new HashMap<String, Integer>();
map.put("1", 1);
map.put("zhangsan", 20);
Set<Map.Entry<String, Integer>>entrySet = map.entrySet();
Iterator<Map.Entry<String,Integer>> iterator = entrySet.iterator();
while (iterator.hasNext())
{
Map.Entry<String, Integer> entry= iterator.next();
String name=entry.getKey();
int age = entry.getValue();
System.out.println(name+":::"+age);
if (name.equals("zhangsan"))
{
entry.setValue(88);
}
//是这行代码有问题,变量name与age的值还是上边的,并没有改变啊
//应重新给name与age求值,再打印
name = entry.getKey();
age = entry.getValue();
System.out.println(name+":::"+age);
}
}
}
复制代码
作者:
mulua
时间:
2013-7-4 21:53
王洪波 发表于 2013-7-4 21:13
明白了
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2