如何知道每个元素在数组中出现了多少次?

How to know how many time each element appears in an array?

So far I have this: 

func myFunc(arr: [Int]) {
    var arr2 = arr
    var count = 1
    for i in 0..<arr.count {
        for j in i + 1..<arr2.count {
            if arr2[i] == arr2[j] {
                count += 1
                arr2.remove(at: j)
            }

        }
       print("\(arr2[i])-\(count)")
        count = 1
    }
}
myFunc(arr: [5,6,5])

我要打印 (5 - 2) (6 - 1) 每次我想删除重复的元素时都会出现致命错误,您能解释一下为什么以及如何解决这个问题吗?

我将通过创建哈希 [​​=18=] 或字典来解决这个问题,其中的键类型与数组元素相同,整数作为值。此结构将存储数组中的值。遍历数组你可以:

  1. 如果元素不存在且值为“键”且 1 为“值”,则向字典添加元素。
  2. 如果元素已经存在 - 将“值”增加元素“键| == 元素之一。 遍历整个数组后,您将得到一个字典,其中唯一元素作为字典键,重复次数作为值