两个不同对象的两个数组的联合
Union of two array of two different Objects
我有两个包含两个不同对象的数组
对象 1:
Class partner {
var pImage: String?
var pTimeStamp: NSDate?
var pTitle: String?
var ID: String?
}
对象 2:
Class customer {
var cImage: String?
var cTimeStamp: NSDate?
var cTitle: String?
var ID: String?
var isCustomer : Bool?
}
我想从这两个 array
objects
中创建一个 array
(当然是一种有效的方式),这样就没有 合作伙伴 和具有相同 ID (cID,pID) 的 customer 对象应该在新的 Array
。
基本上是根据 ID 将这两个数组合并。请帮忙。
编辑: 这些对象存储在 CoreData 中,当时我确实想要高于预期的结果,我已经有两个这些对象的数组
超级聪明的方法是让 Set 为您完成所有工作。使这些对象采用具有 ID 属性 的通用协议。为该协议定义相等性意味着具有相同的 ID 值。现在,如果您不关心顺序,请将数组强制转换为集合并将集合合并。如果您确实关心顺序,则必须改用 NSOrderedSet。您可以在执行并集操作后强制返回 Array。
另一种方法("dumb" 方法)是遍历数组,构建一个字典,其键是 ID 值。就像基于 ID 相等的集合一样,这可以防止您试图避免的重复。这并不是低效的,因为您只在每个数组中循环一次,而且字典键的查找速度很快。构建字典后,将其转换回数组。但是,再次强调,除非采取额外措施,否则您将失去原始数组顺序。
(但是,这两个答案都假设您愿意修改对象,以便它们甚至可以存在于一个公共集合中;就目前情况而言,它们不能,因为它们是两个不相关的类型。)
我有两个包含两个不同对象的数组
对象 1:
Class partner {
var pImage: String?
var pTimeStamp: NSDate?
var pTitle: String?
var ID: String?
}
对象 2:
Class customer {
var cImage: String?
var cTimeStamp: NSDate?
var cTitle: String?
var ID: String?
var isCustomer : Bool?
}
我想从这两个 array
objects
中创建一个 array
(当然是一种有效的方式),这样就没有 合作伙伴 和具有相同 ID (cID,pID) 的 customer 对象应该在新的 Array
。
基本上是根据 ID 将这两个数组合并。请帮忙。
编辑: 这些对象存储在 CoreData 中,当时我确实想要高于预期的结果,我已经有两个这些对象的数组
超级聪明的方法是让 Set 为您完成所有工作。使这些对象采用具有 ID 属性 的通用协议。为该协议定义相等性意味着具有相同的 ID 值。现在,如果您不关心顺序,请将数组强制转换为集合并将集合合并。如果您确实关心顺序,则必须改用 NSOrderedSet。您可以在执行并集操作后强制返回 Array。
另一种方法("dumb" 方法)是遍历数组,构建一个字典,其键是 ID 值。就像基于 ID 相等的集合一样,这可以防止您试图避免的重复。这并不是低效的,因为您只在每个数组中循环一次,而且字典键的查找速度很快。构建字典后,将其转换回数组。但是,再次强调,除非采取额外措施,否则您将失去原始数组顺序。
(但是,这两个答案都假设您愿意修改对象,以便它们甚至可以存在于一个公共集合中;就目前情况而言,它们不能,因为它们是两个不相关的类型。)