Пока у вас достаточно памяти - сортируйте свой список o (n * log (n)), а затем используйте двоичный поиск o (ln (n)).
List<String> yourNames = ...;
Collections.sort(yourNames);
...
int pos = Collections.binarySearch(yourNames, "tanmoy biswas");
if ( pos < 0 ) {
System.out.println("Not found");
}
Когда вы получите OOM
// before sort or do the intern during load of the data
for(int i = 0; i < yourNames.size(); i++) {
yourNames.set(i, yourNames.get(i).intern());
}