for循环外侧new一个对象,然后在for循环里对这个对象赋值,然后放到list里,和把对象放在for循环里有什么区别,写出代码
时间: 2024-12-10 07:38:05 浏览: 21
在使用for循环时,有两种常见的做法:一种是在循环外部创建对象并在循环内部修改它的状态,另一种则是直接在循环体内创建并添加对象到列表。这两种方式的主要区别在于对象的生命周期和列表的构建过程。
第一种情况,例如:
```java
List<MyObject> list = new ArrayList<>();
MyObject obj = new MyObject(); // 在循环外创建对象
for (int i = 0; i < 5; i++) {
// 对obj进行操作...
obj.property = i;
}
// 现在obj的状态已经改变,但在循环结束后list的内容才是最终结果
list.add(obj); // 将修改后的obj添加到list中
```
在这个例子中,`obj`对象在循环结束后仍然存在,如果需要,还可以继续使用。
第二种情况,例如:
```java
List<MyObject> list = new ArrayList<>();
for (int i = 0; i < 5; i++) {
MyObject newObj = new MyObject(); // 在每次迭代时创建新的对象
newObj.property = i;
list.add(newObj);
}
```
在这种情况下,每个迭代都会创建一个新的`MyObject`实例,并添加到列表中,列表里的元素都是独立的,互不影响。
阅读全文