Почему? Логичнее как раз проверять на запрещённые символы: их меньше, и их конечное количество. Хотя если действительно, в качестве разрешённых могут выступать только буквы английского алфавита, то тогда фифти-фифти.
Хотите написать свою HashMap? Зачем?
Если возникают сложности, можно посмотреть исходный код этого классы и статьи про него, например, эту: хабр, статья про внутренности хэш-мэп
Причём тут хранение в памяти? Вообще-то и бд хранит всю инфу в файлах. Просто у них своя структура, поэтому эти два утверждения бессмысленны. Но в любом случае эффективнее хранить данные в базе, а не в обычных текстовых файлах. (Хотя зависит от того, что потом нужно делать с этими данными: если активно с ними работать, делать выборки, сортировать, удалять, вставлять, то только база; если просто хранить, то можно и обычные файлы, хотя не представляю, зачем просто хранить информацию, без работы с ней.)
Ну есть ещё джава-туториал. Не знаю, что ещё для жизни надо. =)
А так - в сети дофига сайтов, где подробно рассказывается про джаву. Я себя сохраняю статьи по разным темам, так там по сути везде одни и те же сайты.