Demo (Spodziewam spowodować [3]
):Jak zrobić rozsądny "set-difference" w Ruby?
[1,2] - [1,2,3] => [] # Hmm
[1,2,3] - [1,2] => [3] # I see
a = [1,2].to_set => #<Set: {1, 2}>
b = [1,2,3].to_set => #<Set: {1, 2, 3}>
a - b => #<Set: {}> WTF!
I:
[1,2,9] - [1,2,3] => [9] # Hmm. Would like [[9],[3]]
Jak wykonać jedną różnicę prawdziwy zestaw niezależnie od kolejności wejść?
Ps. Na marginesie, muszę to zrobić dla dwóch 2000-elementowych tablic. Zwykle tablica # 1 będzie miała mniej elementów niż tablica # 2, ale nie jest to gwarantowane.
+1, dobra odpowiedź. Dodałem Array #^do mojej [biblioteki rozszerzeń] (http://rubydoc.info/gems/shenanigans/1.0.4/Array#%5E-instance_method), nie zawsze jest konieczne przechodzenie przez zestawy. –