黑马程序员技术交流社区
标题:
hashmap键值的问题(int类型循环打印问题)
[打印本页]
作者:
沈样
时间:
2012-1-16 23:08
标题:
hashmap键值的问题(int类型循环打印问题)
本帖最后由 沈样 于 2012-1-18 14:14 编辑
Map map2 = new HashMap();
for(int i=1;i<=10;i++){
map2.put(i,i);
}
System.out.print(map2);
for(Object key:map2.keySet()){
System.out.println(key+":"+map2.get(key));
}
这里存int数据可以,但是这里打印,为什么一直要用Object不能用int或者int 的包装类,如是存的是String可以用String类型打印,不知道这里是什么原理
该贴已经同步到 沈样的微博
作者:
孙玉伟
时间:
2012-1-16 23:25
因为系统打印默认是String类型,而你传给key的类型Object的话有自带的方法toString也可以转换成字符串,所以这两个都可以的。。
作者:
黄秋
时间:
2012-1-17 02:11
并不是System.out.println不能用int,如 System.out.println(2) 是可以的,而是语句:
for(Object key:map2.keySet())
keySet()是一集合,key是其中一元素,应为Object 类型,不能是int。
作者:
黄秋
时间:
2012-1-17 02:39
因JDK5 后,可以定义什么类型的数据放入容器,所以下面这样更好:
public static void main(String[] args){
Map<Integer,Integer> map2 = new HashMap<Integer,Integer>();
for(int i=1;i<=10;i++){
map2.put(i,i);
}
System.out.println(map2);
System.out.println(2);
for(Integer key:map2.keySet()){
System.out.println(key+":"+map2.get(key));
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2