我將使用迭代器遍歷Java中的一組對象。然而,我對使用Iterator有點困惑(用於每個循環)。讓說我有這樣的代碼:在對Java對象集合進行迭代時 - 如何更改當前對象?
Iterator<Organization> orgIter = orgs.iterator();
while (orgIter.hasNext()) {
Organization orgObj = orgIter.next();
orgObj.setChildOrgsTree(generateOrgChildTree(orgObj, new ArrayList<Organization>()));
}
我創建了一個新的對象,然後更改對象中的字段。我的計劃是將我創建的原始對象設置爲等於我創建的這個對象的列表(List不在上面顯示,但我只是想知道我需要它)。
但是如果我不需要創建一個新的對象來完成所有這些,它會容易得多。有沒有一種方法可以獲取當前對象並進行變異?
你的措辭混淆....你的代碼是功能上等同於您接受的答案。在這兩種情況下,唯一創建的對象是ArrayLists,對於每個組織實例它們都是不同的。這是要走的路! –
我很困惑,我在組織對象上創建並將其設置爲等於下一次迭代。我猜想,因爲這是一個參考變量,我仍然在變異同一個物理內存對象... – SoftwareSavant
聲明一個變量和創建一個對象是有區別的。 –