Volver una lista de coincidencias con comodines de un HashMap en java

Tengo un Hashmap que puede contener comodines (*) en la Cadena.

Por ejemplo

HashMap<String, Student> students_;

puede tener a John * como una clave. Quiero saber si JohnSmith coincide con algún elemento en estudiantes_. Podría haber varias coincidencias para mi cadena (John *, Jo * Smith, etc.). ¿Hay alguna forma de obtener una lista de estas coincidencias de mi HashMap?

¿Hay otro objeto que podría estar usando que no requiera que recorra cada elemento de mi colección, o tengo que absorberlo y usar un objeto Lista?

Para su información, mi colección tendrá menos de 200 elementos y, en última instancia, querré encontrar el par que coincida con la menor cantidad de comodines.