黑马程序员技术交流社区

标题: Map集合的一个问题 [打印本页]

作者: 黑马-小龙    时间: 2013-1-25 21:32
标题: Map集合的一个问题
本帖最后由 张向辉 于 2013-1-26 11:39 编辑

public class ThreadDemo3 {
/**
  * @param args
  */
public static void main(String[] args) {
  Map map = new HashMap();
  map.put("Jack", 19);
  map.put("Rose", 19);
  Set keyset = map.keySet();
  Iterator it = keyset.iterator();
  while (it.hasNext()) {
   Object key =it.next();  //这句是什么意思?求哪位大神给解释下啊
   Object value = map.get(key);
   System.out.println(key+""+value);
   
  }
}
}

Object key =it.next();  //这句是什么意思?求哪位大神给解释下啊

作者: 柴乔军    时间: 2013-1-25 21:35
Iterator it = keyset.iterator();
it.next();
第一句是遍历这个Set集合(里面存的是key)
第二句是取出key,一个一个取,带指针。
作者: 刘军亭    时间: 2013-1-25 21:42
public class ThreadDemo3 {
/**
  * @param args
  */
public static void main(String[] args) {
  Map map = new HashMap();
  map.put("Jack", 19);
  map.put("Rose", 19);
  Set keyset = map.keySet(); //这句话的意思就是获取Map集合的所有的Key存入到一个set集合中
  Iterator it = keyset.iterator();//获取迭代器对象,因为Map没有迭代器,所以要把所有的Key转换为Set后再进行迭代
  while (it.hasNext()) {//判断set集合中还有没有下一个元素
   Object key =it.next();  //获取当前元素,并指向下一个元素
   Object value = map.get(key);//根据key在Map中获得value
   System.out.println(key+""+value);
   
  }
}
}
作者: 黄金龙    时间: 2013-1-25 21:52
  1. public class ThreadDemo3 {
  2. /**
  3.   * @param args
  4.   */
  5. public static void main(String[] args) {
  6.   Map map = new HashMap();
  7.   map.put("Jack", 19);
  8.   map.put("Rose", 19);
  9.   Set keyset = map.keySet();
  10.   Iterator it = keyset.iterator();
  11.   while (it.hasNext()) {
  12.    Object key =it.next();  // 这里是获取map的一个键  第一次获取的就是 Jack
  13.   Object value = map.get(key);//这里就是获取Jack的值是19
  14.    System.out.println(key+""+value);这里就打印出第一次获取到了 Jack:19
  15.    
  16.   }
  17. }
  18. }
复制代码

作者: 黑马-小龙    时间: 2013-1-25 22:19
谢谢2楼解答,明白咯,但是还是不明白为什么返回的是Object类型的
作者: 刘军亭    时间: 2013-1-26 16:47
因为你在定义集合和创建迭代器的时候没有指定泛型,所以不知道什么类型,取出来时只能先装到Object的对象里。




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