为了账号安全,请及时绑定邮箱和手机立即绑定

for循环中创建对象

for循环中创建对象

四季花海 2019-03-20 10:15:51
下面这两种for循环中新建对象写法有什么区别呢?第一种:list<User> users = new ArrayList<User>();User user = null;for (int i = 0; i < 10; i++) {    user = new User();    user.setUserId(i);    user.setUserName("segment" + i);    users.add(user);}……第二种:list<User> users = new ArrayList<User>();for (int i = 0; i < 10; i++) {    User user = new User();    user.setUserId(i);    user.setUserName("segment" + i);    users.add(user);}……这两种写法对集合users中的内容有影响吗,还是只是性能上有区别?

9 回答

?
鸿蒙传说

TA贡献1865条经验 获得超7个赞

没有影响,只是user变量的作用域不同。
如果需要对循环的最后一个值做特殊处理,用第一种形式;其它我认为用第二种比较好。

查看完整回答
反对 回复 2019-04-18
?
守着星空守着你

TA贡献1799条经验 获得超8个赞

每次循环都新建一个对象,每个对象都是不同的。两种写法没什么区别


查看完整回答
反对 回复 2019-04-18
?
RISEBY

TA贡献1856条经验 获得超5个赞

list<User> users = new ArrayList<User>();

for (int i = 0; i < 10; i++) {

    users.add(new User().setUserId(i).setUserName("segment" + i));

}


查看完整回答
反对 回复 2019-04-18

没有找到匹配的内容?试试慕课网站内搜索吧

?
哆啦的时光机

TA贡献1779条经验 获得超6个赞

个人认为似乎没什么区别..


查看完整回答
反对 回复 2019-04-18
?
慕少森

TA贡献2019条经验 获得超9个赞

可能第一个性能好一点,但这完全不是java程序员考虑的问题,直观上说,第二个有更好的编码规范和易读性。


查看完整回答
反对 回复 2019-04-18
?
森栏

TA贡献1810条经验 获得超5个赞

记住一个原则吧:变量在需要的时候才声明,才创建。所以:第二种,但区别很小。那些说效率差异的同学,希望有数据支撑,拿出来给大伙看看


查看完整回答
反对 回复 2019-04-18
?
饮歌长啸

TA贡献1951条经验 获得超3个赞

内容没啥影响吧 就是第一种在for循环结束后user依然指向了一段内存不会被垃圾回收器回收


查看完整回答
反对 回复 2019-04-18

添加回答

代码语言

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号