谁能解释一下

xwj1003 2008-08-06 03:19:35

List list = new ArrayList();
list.add(new HashMap().put("1", "2")); //1

Map map = new HashMap();
map.put("1", "2");
list.add(map); //2

for (Iterator iterator = list.iterator(); iterator.hasNext();) {
Map map1 = (Map) iterator.next();
System.out.println(map1);
}



结果如下:
null
{1=2}

为何不同呢?
...全文
50 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
lovingprince 2008-08-08
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 genius564 的回复:]
执行速度问题
list.add(new HashMap().put("1", "2"));
list较hashMap快;
所以在没填充完HashMap list已经执行完毕
[/Quote]

胡说八道,呵呵。
genius564 2008-08-06
  • 打赏
  • 举报
回复
执行速度问题
list.add(new HashMap().put("1", "2"));
list较hashMap快;
所以在没填充完HashMap list已经执行完毕
xwj1003 2008-08-06
  • 打赏
  • 举报
回复
原来如此
lovingprince 2008-08-06
  • 打赏
  • 举报
回复
list.add(new HashMap().put("1", "2"));这句话出问题了。你使用new HashMap().put("1", "2")返回的是put的返回值,而不是map对象。由于put会返回之前的关键字的值,同时之前map中没有1这个关键字,所以返回null。这里你就相当于执行了list.add(null);

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧