jeu de clés de champ dans la table de hachage est null

Je suis en train de boucler sur un HashMap avec le keySet() méthode que ci-dessous:

for (String key : bundle.keySet()) {
    String value = bundle.get(key);
    ...
}

J'utilise beaucoup de boucles for-each sur HashMaps dans d'autres parties de mon code, mais celui-ci comme un comportement bizarre: sa taille est de 7 (ce qui est normal) mais keySet, entrySet et values sont null (selon le débogueur Eclipse)!

Le "bundle" variable est instanciée et peuplée comme suit (rien de très original...):

Map <String, String> privVar;
Constructor(){
    privVar = new HashMap<String, String>();
}
public void add(String key, String value) {
    this.privVar.put(key, value);
}
Si vous faites beaucoup de boucles for-each sur HashMaps je pense que vous pourriez voulez changer votre structure.
Je suis d'accord avec @Macarse. Aussi: si vous souhaitez faire une boucle sur un Map et de la nécessité à la fois les clés et les valeurs, il est généralement beaucoup mieux faire une boucle sur le entrySet() afin d'éviter d'inutiles recherches pour chaque clé.
Merci pour votre suggestion Joachim, je vais le faire. @Macarse: j'ai mis des valeurs dans mes cartes de clé-valeur couples extraits de fichiers (tableur Excel) pour appliquer un ensemble de règles syntaxiques (regExp contrôles) avant de créer une nouvelle feuille de calcul. Pensez vous que les cartes ne sont pas un bon objet pour stocker ?
Si vous faites une Map<String, String> où est la clé d'une ligne et la valeur est la regex?
Non, non. La clé est une clé, et la valeur est une traduction. Il est tout à fait équivalente à une "ResourceBundle" propriétés de fichier. Et si la carte est un équivalent du ResourceBundle. C'est ce que m'a inspiré en fait 🙂

OriginalL'auteur Mathieu L | 2010-02-16