I used an arraylist of cards and cleared the list every time a new search was done, resetting it to the visible list to the full collection of cards and then taking from that list what I need according to the new filters. Rather than altering the old list, I just kinda started from scratch.