java 同一对象调整id反复存入list
时间: 2023-08-14 22:07:34 浏览: 68
在Java中,如果您有一个对象,并且您想要多次将其添加到List中,但是每次添加之前都需要更改其ID,则需要非常小心。因为List存储的是对象的引用,而不是对象本身,因此如果您更改对象的ID,则List中的每个引用都将反映这些更改。这可能会导致一些不期望的行为。
如果您需要将同一对象多次添加到List中,并且每次添加之前都需要更改其ID,则应该创建一个新对象,并将其添加到List中。例如,您可以创建一个工厂方法来创建新对象,如下所示:
```java
public class MyObjectFactory {
private int nextId = 0;
public MyObject create() {
MyObject obj = new MyObject(nextId++);
return obj;
}
}
```
然后,您可以使用此工厂方法创建多个对象,并将每个对象添加到List中:
```java
List<MyObject> myList = new ArrayList<>();
MyObjectFactory factory = new MyObjectFactory();
myList.add(factory.create());
myList.add(factory.create());
myList.add(factory.create());
```
在这个例子中,每次调用工厂方法都会创建一个新的MyObject对象,并为其分配一个唯一的ID。然后,将新对象的引用添加到List中,而不是修改现有对象的ID。这样,List中每个对象的ID都将是唯一的,并且不会影响其他对象的ID。