黑马程序员技术交流社区

标题: eclipse编辑完了没报错为什么不能执行? [打印本页]

作者: 崔瑞龙    时间: 2012-5-10 23:13
标题: eclipse编辑完了没报错为什么不能执行?
public class StudyDemo {

        public static void main(String[] args) {
//                Demo1();
//                Demo2();
//                Demo3();
//                Demo4();
               
               
        }

        private static void Demo4() {
                Map<String,Integer>map = new HashMap<String,Integer>();
                map.put("张三",20);       
                map.put("李四",21);
                map.put("王五",22);
                map.put("赵六",19);
                Set<Entry<String,Integer>>set = new HashSet();                        //获取Map中所有Entry组成的Set集合。
                for(Entry<String,Integer>e:set)                                                        //迭代Set集合,可以获取每一个Entry对象。
                        System.out.println(e.getKey()+":"+e.getValue());        //通过Set集合获取每一个键对象和值对象。
        }
以上代码没报错,Demo1,2,3是我之前抽取的方法,Demo4就是不能执行的代码,之前都没问题,但到了4就不行了。哪位高手给点意见。
作者: 李啸    时间: 2012-5-10 23:18
Set<Entry<String,Integer>>set = new HashSet();  //改成Set<Entry<String,Integer>>set =map.entrySet(); 这样就可以获取map集合里的set集合
作者: 云惟桉    时间: 2012-5-10 23:22
Map集合的两种取出方式:
1.Set<k> keySet = map.keySet();将Map中所有的键存入到Set集合。
  由于Set具备迭代器,用迭代方式取出所有键,再由get方法,获取每一个键对应的值。

  原理:将Map集合转成Set集合,元素为键,再通过迭代器取出值。

2.Set< Map.Entry<k,v> > entrySet:
  将Map集合中的映射关系存入Set集合中,这个关系的数据类型为Map.Entry。
------------------------------------------------------------------------------------------------------------------------------
楼主的代码需要改一下:
Set<Map.Entry<String,Integer>>set =map.entrySet();
应该就可以了。
作者: 杨华威    时间: 2012-5-10 23:29
Set<Entry<String,Integer>>set = new HashSet();                        //获取Map中所有Entry组成的Set集合。

此句有误,(语法没有错误,只是Entry使用方法有误),
获取键值对的映射应该写成:
Set<Entry<String,Integer>>set =map.entrySet();
作者: 魏涞    时间: 2012-5-10 23:29
本帖最后由 魏涞 于 2012-5-10 23:34 编辑

import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;

public class StudyDemo {
         
    public static void main(String[] args) {
//                Demo1();
//                Demo2();
//                Demo3();
                Demo4();
            
            
    }

    private static void Demo4() {
             Map<String,Integer>map = new HashMap<String,Integer>();
             map.put("张三",20);        
            map.put("李四",21);
             map.put("王五",22);
             map.put("赵六",19);
             Set<Entry<String,Integer>>set =map.entrySet();                        //这里不应该在new一个HashSet(),而是用已有的map的entrySet()f方法获取。
             for(Entry<String,Integer> e:set)                                                        
                     System.out.println(e.getKey()+":"+e.getValue());        
     }
}
作者: 杨华威    时间: 2012-5-10 23:30
Set<Entry<String,Integer>>set = new HashSet();                        //获取Map中所有Entry组成的Set集合。

此句有误,(语法没有错误,只是Entry使用方法有误),
获取键值对的映射应该写成:
Set<Entry<String,Integer>>set =map.entrySet();
作者: 黄坚声    时间: 2012-5-11 08:11
这个要看是报什么异常,光看代码不是解决问题有效方法。




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