黑马程序员技术交流社区

标题: 利用键值对关系对象获取,错在哪儿了? [打印本页]

作者: xwh1230    时间: 2014-7-23 21:21
标题: 利用键值对关系对象获取,错在哪儿了?
//利用键值对关系对象获取,错在哪儿了?
import java.util.*;
class MapDemo1{
public static void main(String[] args){
  Map<String,Integer> m = new HashMap<String,Integer>();
  m.put("abc",12);
  m.put("abd",23);
  m.put("cde",45);
  System.out.println(m);
  //运用entrySet获取Map.Entry<String,Integer>键值对
  Set<Map.Entry<String,Integer>,Integer> set = m.entrySet();
  //迭代
  Iterator<Map.Entry<String,Integer>> it = set.iterator();
  while(it.hasNext()){
   Map.Entry me = it.next();
   String s = me.getKey();
   Integer i = me.getValue();
   System.out.println(s+"="+i);
  }
}
}

作者: star5603    时间: 2014-7-23 21:30
Set泛型写错了,没必要后面再写个Integer。
Map.Entry me = it.next();//这个地方Map.Entry 后面不加泛型,那你下面就要强转,加了泛型就不用。
   String s = me.getKey();//如果上面不加泛型,那这个地方应该是String s = (String)me.getKey();下同
   Integer i = me.getValue();
作者: 790324255a    时间: 2014-7-23 21:35
你m.entrySet() 返回的是Set<Map.Entry<String, Integer>> 你写多了,Integer
it.next()返回的是Entry<String, Integer>对象 你写成Map.Entry了 这两处该下就行了
作者: xwh1230    时间: 2014-7-23 21:37
star5603 发表于 2014-7-23 21:30
Set泛型写错了,没必要后面再写个Integer。
Map.Entry me = it.next();//这个地方Map.Entry 后面不加泛型, ...

Thank you!总是感觉写不出来唉!
作者: 暮雨    时间: 2014-7-23 21:56
我就看看,我不说话。
作者: xwh1230    时间: 2014-7-23 21:58
790324255a 发表于 2014-7-23 21:35
你m.entrySet() 返回的是Set 你写多了,Integer
it.next()返回的是Entry对象 你写成Map.Entry了 这两处该下 ...

嗯,首先是不理解为什么要那样写
作者: star5603    时间: 2014-7-23 22:02
xwh1230 发表于 2014-7-23 21:58
嗯,首先是不理解为什么要那样写

那先把泛型认真学下好了
作者: 790324255a    时间: 2014-7-23 23:44
xwh1230 发表于 2014-7-23 21:58
嗯,首先是不理解为什么要那样写

做多就熟悉了




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