如何创建从另一个对象列表中提取数据的列表

时间:2014-11-23 22:57:57

标签: java list javafx

假设我有这种类型的对象列表:

ObjectA {
    public String a;
    public String b;
}

有什么方法可以创建一个包含第一个列表中所有ObjectA.a的新列表,如果我更改第一个列表中的值,它还会更改第二个列表中的值吗?

3 个答案:

答案 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中更改。