Martin Vajsar wrote:I'd start by implementing the simplest solution - that is, iterating over the lists and picking up the items that meet the criteria. Then measure the performance. If and only if it turns out to be a bottleneck of your application, start thinking about how to improve it.
I agree, with one caveat...You need to have defined, measurable criteria for what is "fast enough" BEFORE you do the tests. Defining that sort of thing after you've run your tests is pointless.
It seems like all far too often, if these things aren't defined ahead of time, it doesn't matter what the results are, someone will say "That's not fast enough". So, you define the requirements FIRST, and then work to meet them.
There are only two hard things in computer science: cache invalidation, naming things, and off-by-one errors