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;它没有成功!听到这个消息我很难过!