gpt4 book ai didi

java - 组合列表,然后从组件列表中删除

转载 作者:行者123 更新时间:2023-11-29 10:00:55 25 4
gpt4 key购买 nike

List<Bean> one //blah;
List<Bean> two //blah;
List<Bean> three //blah;

List<Bean> myCombined = Lists.newArrayList();
myCombined.addAll(one);
myCombined.addAll(two);
myCombined.addAll(three);

那么如果我从基础列表中删除,它会从组合列表中删除吗?

one.remove(myBean)
one.contains(myBean); //false
myCombined.contains(myBean); //true or false ?

如果没有,最好的方法是什么?

最佳答案

myCombined.contains(myBean); 将返回 true,因为 List 是一个新对象并且不引用其他对象。

最好的方法是创建一个清除每个列表的方法

public void removeObject(Bean b)
{
this.one.remove(myBean);
this.myCombined.remove(myBean);
}

然后简单地调用removeObject(myBean)

查看 addAll 方法的示例(来自 ArrayList)

public boolean addAll(Collection<? extends E> c) {
Object[] a = c.toArray();
int numNew = a.length;
ensureCapacityInternal(size + numNew); // Increments modCount
System.arraycopy(a, 0, elementData, size, numNew);
size += numNew;
return numNew != 0;
}

你可以清楚地看到它创建了一个副本。

关于java - 组合列表,然后从组件列表中删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29306741/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com