Basically I have about 1,000,000 strings, for each request I have to check if a String belongs to the list or not.
I'm worried about the performance, so what's the best method?
Your best bet is to use a
HashSet and check if a string exists in the set via the
contains() method. HashSets are built for fast access via the use of Object methods
equals(). The Javadoc for
This class offers constant time performance for the basic operations (add, remove, contains and size),
HashSet stores objects in hash buckets which is to say that the value returned by the
hashCode method will determine which bucket an object is stored in. This way, the amount of equality checks the
HashSet has to perform via the
equals() method is reduced to just the other Objects in the same hash bucket.
To use HashSets and HashMaps effectively, you must conform to the
hashCode contract outlined in the javadoc. In the case of
java.lang.String these methods have already been implemented to do this.