FLEX:检查Object是否已添加到ArrayCollection的最佳方法是什么?

时间:2010-04-19 10:48:22

标签: flex

我需要合并2个arrayCollection并避免重复。它们包含具有自己属性的对象。我想避免重复。

感谢

2 个答案:

答案 0 :(得分:0)

如果2个ArrayCollections可能包含完全相同的对象,则它将是

if (acDestination.getItemIndex(acSource[i]) == -1)
// add to the destination

如果对象不完全相同但你想避免在关键字段上重复值,请尝试在目标ArrayCollection上使用过滤器函数。

答案 1 :(得分:0)

        var array1:ArrayCollection = new ArrayCollection();
        var array2:ArrayCollection = new ArrayCollection();
        var array3:ArrayCollection = new ArrayCollection(array1.source);
        for(var i:int;i<array2.length;i++){
            if (!(array3.contains(array2.getItemAt(i))))
                array3.addItem(array2); 

        }

这是最简单的算法,适用于不那么大的列表。 contains方法将检查对象引用,如果您通过查看对象属性来定义重复项,则应使用自定义方法。