亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

復制對新數組列表的引用并在 Java 中刪除

復制對新數組列表的引用并在 Java 中刪除

慕工程0101907 2022-07-20 19:34:14
我有一個數組列表,studentsList,如下所示:class Student{String name;List<Subject> subjects;}我想在另一個列表中復制對這些對象的引用,比如 studentsListCopy。當我對 studentsListCopy 中的學生對象進行任何更改時,比如更改名稱,它也應該反映在原始列表中,但是如果我從 studentsListCopy 中刪除學生對象,它不應該從原始列表中刪除。我怎樣才能做到這一點?
查看完整描述

4 回答

?
守著一只汪

TA貢獻1872條經驗 獲得超4個贊

ArrayList<student> studentsListCopy = new ArrayList<student>();


for(int i=0;i<studentList;i++)

{

   studentsListCopy.add(studentList[i])

}

你可能在尋找這樣的東西嗎?


查看完整回答
反對 回復 2022-07-20
?
慕容3067478

TA貢獻1773條經驗 獲得超3個贊

您必須簡單地創建一個新的List(應該使用子實現),將您的原始列表作為參數。


任何容器(原始列表或其副本)中元素的任何更改都會影響對象本身,因為您正在操作引用的對象,并且在任何這些容器中刪除或插入元素不會影響另一個容器,因為它們完全分開:


class Student {

  String name;

  List<Subject> subjects;


  private void someMethod() {

    // create a shallow copy

    List<Subject> copy = new ArrayList<>(subjects);

    // edit the contained elements

    copy.get(0).setSomeProperty();

  }

}


查看完整回答
反對 回復 2022-07-20
?
幕布斯7119047

TA貢獻1794條經驗 獲得超8個贊

從您的列表中創建一個不可修改的列表。通過這種方式,您可以編輯列表元素的屬性,并且不能從列表中刪除元素。如下所示:

List<Student> editStudentList = Collections.unmodifiableList(yourStudentList);


查看完整回答
反對 回復 2022-07-20
?
人到中年有點甜

TA貢獻1895條經驗 獲得超7個贊

使用對象創建一個新列表,例如new ArrayList<>(subjects),隨心所欲。



查看完整回答
反對 回復 2022-07-20
  • 4 回答
  • 0 關注
  • 120 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號