Ho una certa esperienza nel scrivere codice performante dato che una dozzina di anni fa scrissi un software di scacchi, e un motore di ricerca.

Il concetto non è l'istruzione più volece per il computer, ma l'idea. Solamente l'idea giusta ti permette ri realizzare dei metodi con velocità 10 volte più performati di quella apparentemente più banale.

I metodi di ricerca negli array con iterazioni sono da escludersi quando si vogliono fare ricerche veloci su mole di dati consistenti, in tal caso occorre creare una "sort" collection contenente gli elementi dell'array ordinati secondo un criterio adatto. (in genere se usi la collection puoi anche non usare l'array e non avere quindi duplicati).

Poi la ricerca la esegui con un algoritmo che divide (ideologicamente) la collection a metà e guarda se casualmente lì a metà si trova il dato che cerchi, se no, prendi in considerazione solamente la metà che in base al criterio di sort può contenete il dato che cerchi, e rieffettui questa operazione nuovamente dividendo ideologicamente la collection.. fino a che non lo gai trivato o dcopri che non è presente.

Queta metodologia ti accellera la ricerca di molto con grosse dimensioni di dati.