【问题标题】:Comparing one array to another将一个数组与另一个数组进行比较
【发布时间】:2014-11-20 13:46:55
【问题描述】:

我有两个名为 Array1 和 Array2 的数组。 Array1 是一个填充了具有多个属性的自定义对象的数组。数组 2 是一个用整数填充的数组。

我正在尝试将 Array1 与 Array2 进行比较,以查看 Array1 中对象的 int 属性是否与 Array2 中的 int 匹配。

目前我得到的代码如下:

for (int i = 0; i < Array1.count; i++) {
    Acorn *acorn = [Array1 objectAtIndex:x];

}

有什么建议吗?

【问题讨论】:

  • 如果您比较异构对象,containsObject 将无济于事。您正在查看对 array1 的每个元素的所有 array2 进行比较。这会很慢,但可能没有其他选择(或者可能无关紧要)。
  • 订单重要吗?即 [a.1, a.2] == [1,2] 和 [a.2, a.1] != [1,2]?
  • @MANIAK_dobrii 不,不应该。只要 Array1 包含 Array2 中的所有整数...
  • 那么@jaym 的回答很好,如果 intProp 是一个 NSNumber(否则它缺少 @(acorn.intProp))。但是请注意,虽然它会起作用,但它会很慢(如果您只有 10-20 个项目,您可以跳过此注释并使用答案),特别是如果数组中有很多对象,它会在某个地方大约 O(n^2)。

标签: objective-c arrays


【解决方案1】:

这样的事情可能会有所帮助!

for (int i = 0; i < Array1.count; i++) {
    Acorn *acorn = [Array1 objectAtIndex:i];
    if([Array2 containsObject:acorn.intProp]){
         // Take this elements in Array 3 and this will be your filtered array.
    }
}

【讨论】:

    猜你喜欢
    • 2018-08-04
    • 1970-01-01
    • 2017-04-27
    • 1970-01-01
    • 2013-10-23
    • 2012-08-21
    • 2014-07-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多