首页 > 解决方案 > 从旧列表创建新列表但使用该列表中没有相同引用的对象的最佳方法是什么

问题描述

例如,假设我有一个 MyObject 类

class MyObject{
int i;
String s;

My(int i,String s){
    this.i = i;
    this.s = s;
}
...
setters/getters/toString
}

并且我有一个包含该类对象的列表(我不知道这是否会产生不同的列表,但我希望它可以与 ObservableList 一起使用)

ObservableList<MyObject> listOne = FXCollections.observableArrayList();
MyObject one = new MyObject(1,"foo");
MyObject two = new MyObject(2,"boo");

现在我想从 listOne 的对象创建新的 ObservableList 但我希望新列表具有具有不同引用的对象

如果我这样做

ObservableList<MyObject>listTwo=FXCollections.observableArrayList(listOne);

当我做这样的事情时

listOne.get(0).setI(500);

它也会影响 listTwo 中的对象

避免这种情况的最佳做法是什么?我如何制作一些列表的新列表,该列表中的对象被视为不同的对象?

我可以做这样的事情

for (MyObject object : listOne) {
        MyObject cloneObject = new MyObject(object.getI(),object.getS());
        listTwo.add(cloneObject);
}

我只希望有更好的方法

标签: java

解决方案


推荐阅读