Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 新对象更改值_Java - Fatal编程技术网

Java 新对象更改值

Java 新对象更改值,java,Java,在我的代码中,我正在从首选项列表中删除一个元素。为此,我使用 Preferences pref= new Preferences(preferences.getNumberOfProfessors(),preferences.getNumberOfStudents(),preferences.getProfessors_preference(),preferences.getStudents_preference()); 现在,我将数组列表的新数组列表声明为- ArrayList<A

在我的代码中,我正在从首选项列表中删除一个元素。为此,我使用

 Preferences pref= new Preferences(preferences.getNumberOfProfessors(),preferences.getNumberOfStudents(),preferences.getProfessors_preference(),preferences.getStudents_preference());
现在,我将数组列表的新数组列表声明为-

 ArrayList<ArrayList<Integer>> prof_pref_bup=new ArrayList<ArrayList<Integer>>();
 prof_pref_bup=pref.getProfessors_preference();
现在,当我执行prof_pref_bup.remove0时,教授的首选项列表一直到首选项对象都会发生更改。有人能帮我吗

PS-我无法更改首选项类,因此无法使用复制构造函数

我已经通过了 和类似的帖子等等

如果要将prof_pref_bup作为pref.getProfessors_preference的副本,可以执行以下操作:

ArrayList<ArrayList<Integer>> prof_pref_bup = new ArrayList<>();
for (ArrayList<Integer> entry : pref.getProfessors_preference()) {
    prof_pref_bup.add(new ArrayList<>(entry));
}

现在prof_pref_bup是一个新的ArrayList,其中的值列表完全是从pref.getProfessors_preference复制而来的

它与您正在修改的引用相同。改为创建副本:ArrayList prof_pref_bup=new ArrayListpref.getprofessor_preference;它没有成功!听到这个消息我很难过!