配列から重複している回数を出力


Swiftの配列から何回重複しているかを判別して重複している回数を出力することはできますか？  
例えば[0,0,0,2,2,3,4,4]という配列があったら

0:3回  
1:0回  
2:2回  
3:1回  
4:2回  
[0,2,4,3]//重複した回数が多い順

のようにprintすることはできますか？  
やり方があったら教えてください




NSCountedSetを使います。

[code]

    let a = [0,0,0,2,2,3,4,4]
    
    let counter = NSCountedSet(array: a)
    
    let counts = [0, 1, 2, 3, 4].map { ($0, counter.count(for: $0)) }
    
    counts.forEach { print("\($0.0):\($0.1)回") }
    print(counts.sorted(by: { l, r in l.1 > r.1 }).map({ $0.0 }))
    
[/code]

