Java 如何在arrayList.remove()中获取新对象 ArrayList treeList=新建ArrayList(); ArrayList aList=新的ArrayList(); ArrayList bList=新的ArrayList(); 1.增加第(1)款; 树列表。添加(列表); bList=treeList.remove(0); a.clear()//布利斯特将被清除
我知道bList和aList将引用同一个对象,所以当aList.clear()时,bList也将被清除,有没有办法使bList成为一个新对象。试试这个。将remove的返回作为参数传递给Java 如何在arrayList.remove()中获取新对象 ArrayList treeList=新建ArrayList(); ArrayList aList=新的ArrayList(); ArrayList bList=新的ArrayList(); 1.增加第(1)款; 树列表。添加(列表); bList=treeList.remove(0); a.clear()//布利斯特将被清除,java,arraylist,Java,Arraylist,我知道bList和aList将引用同一个对象,所以当aList.clear()时,bList也将被清除,有没有办法使bList成为一个新对象。试试这个。将remove的返回作为参数传递给ArrayList构造函数 ArrayList<ArrayList<Integer>> treeList = new ArrayList<>(); ArrayList<Integer> aList = new ArrayList<>();
ArrayList
构造函数
ArrayList<ArrayList<Integer>> treeList = new ArrayList<>();
ArrayList<Integer> aList = new ArrayList<>();
ArrayList<Integer> bList = new ArrayList<>();
aList.add(1);
treeList.add(aList);
bList = treeList.remove(0);
aList.clear(); //bList will be cleared
。。。有没有办法使bList
成为一个新对象
你可以复制它;e、 g
[1]
请注意,MyThing
在添加和删除列表时仔细复制列表,以便MyThing
API的一个客户端不能通过共享列表干扰另一个客户端
显然,这样做是有代价的。或者,不要指定:
public class MyThing {
private ArrayList<ArrayList<Integer>> treeList = new ArrayList<>();
public void add(ArrayList<Integer> l){
treeList.add(new ArrayList<>(l));
}
public void remove(int index) {
return new ArrayList<>(treeList.remove(index));
}
}
您可以使用List#addAll
bList = treeList.remove(0);
同意。我们的问题是OP没有解释他们真正想做什么。根据真正的问题是什么,这可能是一个更好的解决方案。
public class MyThing {
private ArrayList<ArrayList<Integer>> treeList = new ArrayList<>();
public void add(ArrayList<Integer> l){
treeList.add(new ArrayList<>(l));
}
public void remove(int index) {
return new ArrayList<>(treeList.remove(index));
}
}
bList = treeList.remove(0);
bList.addAll(treeList.remove(0));