En travaillant sur un énoncé de problème, j'ai besoin d'accéder au prochain Entry
d'un Map
et en fonction d'une condition, je dois modifier la valeur de la prochaine entrée.
J'ai envisagé la solution proposée ici : Comment obtenir la clé/valeur précédente et la clé/valeur suivante dans Maps ? où je peux accéder au higherEntry
en utilisant NavigableMap
mais ça jette :
Exception in thread "main" java.lang.UnsupportedOperationException
at java.util.AbstractMap$SimpleImmutableEntry.setValue(AbstractMap.java:797)
ce qui est tout à fait compréhensible. Voici l'extrait de code
for (Map.Entry<Character, Integer> current : myMap.entrySet()) {
Map.Entry<Character, Integer> next = myMap.higherEntry(current.getKey());
if (current.getValue() == next.getValue()) {
// Code block
} else if (current.getValue() > next.getValue()) {
// Code block
} else {
next.setValue(1); // Line that throws Exception
}
}
Comment puis-je itérer dans un Map
accéder à la prochaine entrée et la modifier, le cas échéant ?