gpt4 book ai didi

arrays - 数组到 NSOrderedSet 将列表的大小更改为 1

转载 作者:行者123 更新时间:2023-11-28 06:07:57 42 4
gpt4 key购买 nike

我有一个包含 2 个元素的数组,当我尝试将它转换为 NSOrderedSet 时,它给我的大小只有一个元素

      LOG("\(listTwoElement.count)")

这一行给我2

   LOG("\(NSOrderedSet.init(array: listTwoElement).count)")

这一行只给我 1 个元素

为什么转换为 NSOrderedSet 会改变数组的大小?

谢谢你的帮助

最佳答案

Set 是唯一元素的无序列表。如果您尝试将相同的元素放入集合中两次,您将只会得到一个元素

数组 是不需要唯一的元素的有序列表。您可以在数组中多次使用相同的元素。

OrderedSet 是两者的组合(但不是两者的子类)。这些项目是有序的,就像一个数组,但每个元素都必须是唯一的。

唯一元素并不(仅仅)意味着它们存储在内存中的不同位置,而是它们在某种基本意义上并不“相等”。每个类(class)的平等都可以有不同的定义。想要定义它的类,实现 NSObjectProtocolisEqual:hash 方法。 (相等对象的哈希值必须相等,不相等对象的哈希值不需要不同)。

如果不了解您正在处理的元素的更多信息,很难说出为什么在您不期望它们时它们被评估为相等。我将开始查看类对 isEqualhash 的实现。

关于arrays - 数组到 NSOrderedSet 将列表的大小更改为 1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47680216/

42 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com