java - 从旧列表创建新列表但使用该列表中没有相同引用的对象的最佳方法是什么
问题描述
例如,假设我有一个 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);
}
我只希望有更好的方法
解决方案
推荐阅读
- swift - 释放 LongPressGesture SwiftUI 时触发动作
- momentjs - 给定所需的工作时间和 PT 时区的工作时间,如何计算任何时区的完成日期时间
- javascript - 将数据从一张纸复制到另一张 - Google Script
- matlab - 在 MATLAB 中模拟 LDPC 和 QAM
- c++ - Visual Studio 2019 不显示类方法的完整列表
- python-3.x - Django 缓存 API 请求结果
- image - 迭代目录中的每个图像
- android-studio - 我已经安装了 HAXM,但是 android studio 找不到我的虚拟设备
- python - Web 请求:json.decoder.JSONDecodeError:预期值:第 1 行第 1 列(字符 0)
- excel - 无法将 Excel 连接到 ALM