@rmaddyがすでに次のように財団NSCountedSetを使用することができますコメントしたよう:
を
import Foundation // or iOS UIKit or macOS Cocoa
let values = [65.0, 65.0, 65.0, 55.5, 55.5, 30.25, 30.25, 27.5]
let countedSet = NSCountedSet(array: values)
print(countedSet.count(for: 65.0)) // 3
for value in countedSet.allObjects {
print("Element:", value, "count:", countedSet.count(for: value))
}
また、タプルの配列や辞書を返すようにNSCountedSetを拡張することができます:あなたはFoundationフレームワークを使用して気にしない場合は
extension NSCountedSet {
var occurences: [(object: Any, count: Int)] {
return allObjects.map { ($0, count(for: $0))}
}
var dictionary: [AnyHashable: Int] {
return allObjects.reduce(into: [AnyHashable: Int](), {
guard let key = $1 as? AnyHashable else { return }
$0[key] = count(for: key)
})
}
}
let values = [65.0, 65.0, 65.0, 55.5, 55.5, 30.25, 30.25, 27.5]
let countedSet = NSCountedSet(array: values)
for (key, value) in countedSet.dictionary {
print("Element:", key, "count:", value)
}
これは
Element: 27.5 count: 1
Element: 30.25 count: 2
Element: 55.5 count: 2
Element: 65 count: 3
を印刷します'NSCountedSet'クラスを調べてください。 – rmaddy