Discussed here: https://www.reddit.com/r/programming/comments/4jlkhv/accu_20...
Do you agree? And if so, would that—at least partially—explain your observation?
Basically, it is a hard thing where being wrong flat out doesn't matter the vast majority of the time.
I think education does folks a disservice by asking "what is the fastest" or "which one should you choose" in many scenarios. Instead, we want people to be able to reason about all of the choices more holistically, which is not an easy task.
Measure, measure, measure. How (memory) expensive is the element-matches check (can the array bound or address of final element stay in a register)? How often does the search fall off the end, vs finding something, perhaps in a list sorted in most often used order?
Alternately, would a trie be better than an array search? (Depends on key length, set element count, usage patterns...)