filter: use set instead of array, which include speed is much faster

Array's include? function is O(n)
Set's include? function is O(1)

Which is much faster, in my benchmark, about 2.5x faster.