我必須從arraylist中取出一個元素,並將其移動到另一個元素。從arralist複製一個元素並將其添加到另一個
我想我可以通過從第一個ArrayList複製元素並將其添加到另一個,然後從第一個ArrayList中刪除它,但我不知道如何製作元素的副本。
我必須從arraylist中取出一個元素,並將其移動到另一個元素。從arralist複製一個元素並將其添加到另一個
我想我可以通過從第一個ArrayList複製元素並將其添加到另一個,然後從第一個ArrayList中刪除它,但我不知道如何製作元素的副本。
我原以爲從ArrayList中移除將是困難的部分。無論如何,因爲這是Java中,你可以創建對象的引用要卸下:
Object i = list1.get(indexYouWant);
list2.add(i);
其中「對象」可以用任何你對象的類型進行更換。當你從第一個列表中'刪除'元素時,你可能只是刪除列表對元素的引用,而不是元素本身。由於該元素現在在第二個列表中引用,因此它可以安全地避免垃圾收集,並且應該在第二個列表中過上完美幸福的生活。
第一個ArrayList類型是第二個ArrayList類型的超類。是否有可能強制副本成爲子類的一種類型? – pomelo
只要你知道你正在複製的所有東西總是隱藏在超類中的子類,就可以使用轉換。例如,Subclass i =(Subclass)superclassObject; – DaaaahWhoosh
Thx求救!確切地說,我需要:) – pomelo
執行clone()
並根據列表元素的類型創建深層副本。
A guide to object cloning in java將爲您提供有關克隆Java的進一步說明。
你試過了什麼?我沒有看到任何代碼。 – redFIVE
我只是想出了創建引用的方法(即使它看起來很簡單,當看着aaaahWhoosh答案),所以我已經嘗試過並不重要,因爲它只是試圖猜測我是如何能做到這。 – pomelo