我想用java编写一个方法,它给出 ArrayList<ArrayList<Integer>>
(说结果)来自 ArrayList<ArrayList<Integer>>
(说原始)而不改变原始的。所以我必须首先将原始存储在某个变量中,但我找不到合适或简单的方法
例如。我想从原始中删除某个对象(整数) 这就是我编码的方式
static ArrayList<ArrayList<Integer>> rmv(Integer a,ArrayList<ArrayList<Integer>> original){
ArrayList<ArrayList<Integer>> result=new ArrayList<ArrayList<Integer>>();
//storing original to other variable
for(int i=0;i<original.size();i++){
ArrayList<Integer> temp=new ArrayList<Integer>();
for(int j=0;j<original.get(i).size();j++){
temp.add(original.get(i).get(j));
}
result.add(temp);
}
// not so important here
for(int i=0;i<b.size();i++){
result.get(i).remove(a);
}
return result;
}
请建议我是否有任何快捷方法
最佳答案
您可以使用addAll :
ArrayList<ArrayList<Integer>> result=new ArrayList<ArrayList<Integer>>();
for(int i=0;i<original.size();i++){
ArrayList<Integer> temp=new ArrayList<Integer>();
temp.addAll(original.get(i));
result.add(temp);
}
或者,您可以使用clone :
ArrayList<ArrayList<Integer>> result=new ArrayList<ArrayList<Integer>>();
for(int i=0;i<original.size();i++){
ArrayList<Integer> temp = (ArrayList<Integer>) original.get(i).clone();
result.add(temp);
}
关于java - 如何复制一个对象,以便在更改复制的对象时,原始对象不会改变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25129557/