A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 沙漠里的小鱼 于 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())这句有错误啊 请问下什么原因啊

11 个回复

倒序浏览
  说for(it.hasNext());这句有错误啊 请问下什么原因啊
你这里多了各;号
回复 使用道具 举报
那里多了分号哦·    亲
回复 使用道具 举报
for(it.hasNext());多了个分号 把for改成while就行了
回复 使用道具 举报
李深山 发表于 2012-3-20 00:34
说for(it.hasNext());这句有错误啊 请问下什么原因啊
你这里多了各;号

去掉;还是运行不了啊
回复 使用道具 举报
张一凡 发表于 2012-3-20 00:37
那里多了分号哦·    亲

去掉;还是运行不了啊
回复 使用道具 举报
大哥你这是语法错误, for( ;  ;  )里面是三个表达式, 虽然都是可选项,但是分号是必不可少的,
不过你只是用单个的条件去控制循环, 这样用while 循环比较好
回复 使用道具 举报
张一凡 黑马帝 2012-3-20 00:52:06
8#
沙漠里的小鱼 发表于 2012-3-20 00:44
去掉;还是运行不了啊

亲·   你那里应该是想写while循环对吗?
把for改成while试试呢
回复 使用道具 举报
张一凡 发表于 2012-3-20 00:52
亲·   你那里应该是想写while循环对吗?
把for改成while试试呢

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

你说的是Map.Entry对把,简单说它就是个内部静态接口而已,Entry就是Map的一个内部类。
它的作用就是取出map集合中所有映射关系,存储到set集合中。
回复 使用道具 举报
本帖最后由 贠(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);
}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马