假设我有这种类型的对象列表:
ObjectA {
public String a;
public String b;
}
有什么方法可以创建一个包含第一个列表中所有ObjectA.a
的新列表,如果我更改第一个列表中的值,它还会更改第二个列表中的值吗?
答案 0 :(得分:2)
ObservableList<ObjectA> objectList = ...;
ObservableList<String> stringAList = EasyBind.map(objectList, obj -> obj.a);
此解决方案使用EasyBind库。
答案 1 :(得分:0)
没有。由于String类是不可变的,因此您无法执行objectA.getA().set("new string")
。
更改实例“a”的值的唯一方法是a =“new string value ...”。因此,这会创建一个新的String对象,并使引用“a”引用它。因此,更改不会反映在第二个列表中。
答案 2 :(得分:-1)
你有清单。
列表1
现在创建新列表例如list2
现在只需将list2分配到list1中
list2 = list1
list2只是对list1的引用。这两个列表中的数据只在内存中存在一次
如果更改list1中的元素,它也会在list2中更改。