java - 如何复制一个对象,以便在更改复制的对象时,原始对象不会改变

标签 java

我想用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/

相关文章:

java - 在 Java 中使用 BufferedReader 处理换行符和空字符串

Java 泛型 : interface method that receives type argument of implementing class

java - 通过传递字符串而不是字符串数组来解析句子斯坦福解析器

java - 如何将 *.doc 读入 JTextPane?

java - JPA @Id and insertable = false, updatable = false 抛出异常

java - 如何在 Jmeter beanshell 脚本中使用 Hashset/set

java - 一致性 : Error: Could not find or load main class com. tangosol.net.DefaultCacheServer

java - 将多个值添加到 HashMap 中的一个键

java - Swing 字母数字键盘

java - Valign JPanel 不工作