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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 梵天的梦 中级黑马   /  2014-2-23 20:36  /  1181 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文


  1. HashMap<String,Integer> map = new HashMap<String, Integer>();
  2.                 map.put("aa", 23);
  3.                 map.put("bb", 24);
  4.                 map.put("cc", 25);
  5.                
  6.                 Set<Map.Entry<String, Integer>> entrySet = map.entrySet();
  7.                 for(Map.Entry<String, Integer> entry : entrySet){
复制代码



评分

参与人数 1技术分 +1 收起 理由
何伟超 + 1

查看全部评分

5 个回复

倒序浏览
在for循环里面entry的类型定义为Map.Entry<String, Integer>,为什么不是Set<Map.Entry<String, Integer>> 有些不理解。
我是这么理解,entrySet里面的每一个元素都是Map.Entry<String, Integer>类型,所以迭代时entry的类型为Map.Entry<String, Integer>,不知道这么理解对不对?
                       

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

回复 使用道具 举报
梵天的梦 发表于 2014-2-23 20:40
在for循环里面entry的类型定义为Map.Entry,为什么不是Set 有些不理解。
我是这么理解,entrySet里面的每一 ...

给你一个对比你就明白了:public class JiCheng {
        public static void main(String args[]) {
                String[] strs=new String[]{"a","b","c","d","e","f","g"};
                for(String st :strs)
                {
                        String newStr="new_"+st;
                        System.out.println(newStr);
                }
        }
}
这里的String是数组,你可以联想成Set集合,因为String[]数组里存的都是String类型,所以使用增强for( )语句时,里面传参为(String(即是集合里存的的类型) st(变量名) :strs(集合变量名))这样的格式,对st进行操作,就是对集合里的单个元素进行操作。懂了吧?

评分

参与人数 1技术分 +1 收起 理由
何伟超 + 1

查看全部评分

回复 使用道具 举报
增强for的格式
for(数据类型 变量 : 集合或者数组){  }
for后面跟的第一个就是数据类型,也就是<>泛型里限定的类型
      Set<Map.Entry<String, Integer>> entrySet = map.entrySet();
      里面的<Map.Entry<String, Integer>> 就是限定的数据类型, 也就是说明Setj里面装的就是这种类型的对象,
如: ArrayList <String>al = new ArrayList<String>();
                al.add("abc1");
                al.add("abc2");
                for( String str : al){}

评分

参与人数 1技术分 +1 收起 理由
何伟超 + 1

查看全部评分

回复 使用道具 举报
徐青松 发表于 2014-2-23 20:55
给你一个对比你就明白了:public class JiCheng {
        public static void main(String args[]) {
                String[ ...

这个例子真的很恰当,谢谢明白了
回复 使用道具 举报
首先确定高级for循环的格式,for后面的括号里必须明确要迭代的数据类型,然后才是变量名,冒号,要迭代的集合。这个例子中的set集合用到了泛型,泛型的意思就是说这个集合里装的是什么数据类型的对象。所以,对set进行迭代的话,for里面的数据类型写set后泛型限定里的类型肯定没错。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马