Réponse courte: Oui, la méthode keySet()
renvoie toujours une ordonnéjava.util.List
.
Réponse longue: C'est un peu difficile à prouver car nous devons regarder un code source.
examen commence à groovy.runtime.DefaultGroovyMethods
lorsque la méthode public static <K, V> Map<K, V> sort(Map<K, V> self, Closure closure)
renvoie un java.util.LinkedHashMap
, qui est commandé .
La méthode de l » Set<K> keySet()
LinkedHashMap
est défini dans la classe java.util.HashMap
et renvoie un Iterator
en appelant la méthode Iterator<K> newKeyIterator()
, qui est surchargée dans la classe LinkedHashMap
] [4]. Il renvoie un LinkedHashMap$KeyIterator
, qui [définit la méthode K next()
qui appelle en interne la méthode Entry<K,V> nextEntry()
, qui renvoie un Entry
qui a été défini dans le champ LinkedHashMap$Entry.after
.
Enfin, on peut voir dans la méthode LinkedHashMap$Entry.addBefore(Entry<K,V> existingEntry)
que le champ LinkedHashMap$Entry.after
est défini de manière ordonnée.
Oh mon ... Je reliaient chaque déclaration, je l'ai fait au code source correspondant à groovy.runtime.DefaultGroovyMethods
, java.util.HashMap
et java.util.LinkedHashMap
, résumant jusqu'à 10 liens hypertextes. Malheureusement, en tant que débutant à Stackoverflow, je suis juste autorisé à poster un, avoir à supprimer la plupart des liens ... Désolé.
WOW, bravo l'homme! – Yossale