Android Flex ActionScript-ArrayList问题

Android Flex ActionScript-ArrayList问题,android,ios,apache-flex,actionscript,Android,Ios,Apache Flex,Actionscript,在过去的几天里,为了完成这件事,我一直在绞尽脑汁,但我做不到。有人请帮帮我! 让我不要把整件事都告诉你,我会尽量简单明了地解释清楚。 我有一个数组列表。我试图将其复制到另一个索引中,并试图删除特定索引中的一个项。但这不仅会删除复制的ArrayList中的项,还会删除原始ArrayList中的项 var DuplicateList:ArrayList = new ArrayList(); DuplicateList = OriginalList; DuplicateList.removeItem

在过去的几天里,为了完成这件事,我一直在绞尽脑汁,但我做不到。有人请帮帮我! 让我不要把整件事都告诉你,我会尽量简单明了地解释清楚。 我有一个数组列表。我试图将其复制到另一个索引中,并试图删除特定索引中的一个项。但这不仅会删除复制的ArrayList中的项,还会删除原始ArrayList中的项

var DuplicateList:ArrayList = new ArrayList();
DuplicateList = OriginalList;

DuplicateList.removeItemAt(2);
例如:

var DuplicateList:ArrayList = new ArrayList();
DuplicateList = OriginalList;

DuplicateList.removeItemAt(2);
上述操作不仅删除了DuplicateList中索引2处的“Item 3”,还删除了OriginallList中的“Item 3”

var DuplicateList:ArrayList = new ArrayList();
DuplicateList = OriginalList;

DuplicateList.removeItemAt(2);
我只需要使用这种方法解决一些问题,因为当我将列表控件的数据提供程序从OriginalList更改为DuplicateList时,这是唯一一种保留我在使用OriginalList作为数据提供程序的FLEX列表控件的ItemRenderer中的控件中键入的内容的方法。以下方法并不保留所有数据

var DuplicateList:ArrayList = new ArrayList();
DuplicateList = OriginalList;

DuplicateList.removeItemAt(2);
var DuplicateList:ArrayList = new ArrayList();
DuplicateList.addAll(OriginalList);

DuplicateList.removeItemAt(2);
ListCntrl.dataProvider = DuplicateList;

提前感谢您的帮助…

这是一件非常非常重要的事情:

var DuplicateList:ArrayList = new ArrayList();
DuplicateList = OriginalList;

DuplicateList.removeItemAt(2);
ActionScript3使用对对象的引用。因此,这行代码中的两个变量引用了一个完全相同的
ArrayList实例:

var DuplicateList:ArrayList = new ArrayList();
DuplicateList = OriginalList;

DuplicateList.removeItemAt(2);
DuplicateList = OriginalList;
因此,当您从一个引用中删除一个项目时,它将从下一个引用中删除。如果您想要两个独立的
ArrayList
实例,那么需要像您在代码后面建议的那样克隆它

var DuplicateList:ArrayList = new ArrayList();
DuplicateList = OriginalList;

DuplicateList.removeItemAt(2);
到目前为止,一切都很好。。。但是为什么您的
ListCntrl
会保留
原始列表中的数据呢?那完全没有道理。如果您从
DuplicateList
中删除一个项目,然后将其用作数据提供程序,则该项目不应存在。我想这个故事还有很多

var DuplicateList:ArrayList = new ArrayList();
DuplicateList = OriginalList;

DuplicateList.removeItemAt(2);