Recherche avec des caractères génériques dans une Collection de String

J'ai un HashMap<Integer,String>. J'ai essayé le code suivant à la requête de la Carte et retourner toutes les valeurs possibles

public Collection<String> query(String queryStr) {
        List<String> list = new ArrayList<String>();
    for (Map.Entry<String, Integer> entry : myMap.entrySet()) {
        if (queryStr.matches(entry.getKey()))
            list.add(entry.getKey());
    }
    if (list.isEmpty())
        return null;
    else
        return list;
}

Si la carte a "test","best","crest","zest","testy","tether","temper","teat","tempest". Une requête de te*t doit retourner "teat","tempest","test". Pour " test* il devrait revenir "test", "bourru". Comment la mettre en œuvre? Est-il un générique recherche de chaîne de caractères? Et je ne peux pas utiliser toutes les bibliothèques externes.

String a la méthode matches. Vous pouvez également utiliser Pattern et Matcher classes.
Pourquoi retourner la valeur null si la liste est vide? Il serait plus logique de simplement renvoyer une liste vide.
Un test de assertArrayEquals(new Object[] {"meilleur","crête","tempête","test","zeste"}, getSortedArray(dict.query("*est"))); n'est pas de retourner quoi que ce soit.
Sa à l'exigence du cas de test. Je ne peut pas les modifier.

OriginalL'auteur NEO | 2013-10-01