The problem is that you have to search the whole array every time you insert, making insertion an O(N) operation. With a hash, the lookup is essentially constant-time. Building an array becomes O(N^2), like bubblesort (which is also easy to read an understand, and which nobody uses).
You can use a hash in all the same ways of defining existence. If you only want unique in the first 256 chars, only hash those.
Caution: Contents may have been coded under pressure.
Comment on Re^2: Testing for a string value within an array