黑马程序员技术交流社区

标题: entryset的一个问题 紧急求助 谢谢大家 [打印本页]

作者: 沙漠里的小鱼    时间: 2012-3-20 00:18
标题: entryset的一个问题 紧急求助 谢谢大家
本帖最后由 沙漠里的小鱼 于 2012-3-20 00:43 编辑

package heima.cn;
import java.util.*;
public class mapDemo1 {

        public static void main(String[] args) {
               
Map<String,String> map=new HashMap<String,String>();
map.put("1", "中国");
map.put("2", "日本");
map.put("3", "美国");
map.put("4", "德国");
Set<Map.Entry<String,String>> entrySet=map.entrySet();
Iterator<Map.Entry<String,String>> it=entrySet.iterator();
for(it.hasNext()){
        Map.Entry<String,String> me=it.next();
        String key=me.getKey();
        String value=me.getValue();
        System.out.println(key+value);
                             }
        }
}
我运行了一下         说for(it.hasNext())这句有错误啊 请问下什么原因啊
作者: 李深山    时间: 2012-3-20 00:34
  说for(it.hasNext());这句有错误啊 请问下什么原因啊
你这里多了各;号

作者: 张一凡    时间: 2012-3-20 00:37
那里多了分号哦·    亲
作者: 魏群    时间: 2012-3-20 00:39
for(it.hasNext());多了个分号 把for改成while就行了
作者: 沙漠里的小鱼    时间: 2012-3-20 00:44
李深山 发表于 2012-3-20 00:34
说for(it.hasNext());这句有错误啊 请问下什么原因啊
你这里多了各;号

去掉;还是运行不了啊
作者: 沙漠里的小鱼    时间: 2012-3-20 00:44
张一凡 发表于 2012-3-20 00:37
那里多了分号哦·    亲

去掉;还是运行不了啊
作者: a504079589    时间: 2012-3-20 00:47
大哥你这是语法错误, for( ;  ;  )里面是三个表达式, 虽然都是可选项,但是分号是必不可少的,
不过你只是用单个的条件去控制循环, 这样用while 循环比较好
作者: 张一凡    时间: 2012-3-20 00:52
沙漠里的小鱼 发表于 2012-3-20 00:44
去掉;还是运行不了啊

亲·   你那里应该是想写while循环对吗?
把for改成while试试呢
作者: 沙漠里的小鱼    时间: 2012-3-20 01:05
张一凡 发表于 2012-3-20 00:52
亲·   你那里应该是想写while循环对吗?
把for改成while试试呢

呵呵呵 可以了 可以给我讲讲entryset的用法吗 我不是很明白啊 谢谢
作者: 许圣建    时间: 2012-3-20 01:47
语法格式错误,这样就对了,但是建议楼主千万复习for的使用方法,很重要。
for(Iterator<Map.Entry<String,String>> it=entrySet.iterator();it.hasNext();){
作者: 张一凡    时间: 2012-3-20 20:53
沙漠里的小鱼 发表于 2012-3-20 01:05
呵呵呵 可以了 可以给我讲讲entryset的用法吗 我不是很明白啊 谢谢

你说的是Map.Entry对把,简单说它就是个内部静态接口而已,Entry就是Map的一个内部类。
它的作用就是取出map集合中所有映射关系,存储到set集合中。
作者: 贠(yun)靖    时间: 2012-3-20 21:11
本帖最后由 贠(yun)靖 于 2012-3-20 21:13 编辑

给你个例子  遍历的时候推荐使用for循环遍历  节省内存资源, while循环比for循环浪费内存资源


public static void main(String[] args)
        {
                Map<String,String> map = new HashMap<String,String>();
                map.put("1","xiaoming---1");
                map.put("2","xiaoming---2");
                map.put("3","xiaoming---3");
                map.put("4","xiaoming---4");

                sop("第一种方式");
                Set<String> keyset = map.keySet();
                for (Iterator<String> it = keyset.iterator();it.hasNext() ; )
                {
                        String key = it.next();
                        String value = map.get(key);
                        sop("key="+key+",value="+value);
                }
                sop("第二种方式");
                Set<Map.Entry<String,String>> entryset = map.entrySet();

                for (Iterator<Map.Entry<String,String>> it = entryset.iterator();it.hasNext() ; )
                {
                        Map.Entry<String,String> me = it.next();
                        String key = me.getKey();
                        String value = me.getValue();
                        sop("key="+key+",value="+value);
                }
        }
public static void sop(Object obj)
{
    System.out.println(obj);
}





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2