Я не думаю, что какой-либо из существующих ответов достаточно точно говорит о том, о чем вы спрашиваете. Несомненно, HashMap с определенным содержимым может не выполнять итерацию таким же образом, как другой с одинаковым содержимым, или при другом вызове виртуальной машины, или работать на разных версиях JDK и т. Д. Но вы просто спрашиваете, является ли этот точный экземпляр, если не изменяется, будет повторять то же самое , что и сам.
Это хороший пример спецификации de facto . Это правда, что в письме спецификации не указано, что это будет так. Тем не менее, каждая отдельная коллекция JDK ведет себя таким образом (при условии, что в случае упорядоченного доступа LinkedHashMap, вы выполняете все итерации каждый раз). И трудно представить реализацию коллекции, которая бы не имела этого свойства. Я реализовал и просмотрел множество коллекций, и только однажды я рассмотрел коллекцию, которая каждый раз будет повторяться по-разному; это был чрезвычайно странный случай, и я закончил тем, что выкинул всю идею, потому что повторение по-разному каждый раз было слишком чертовски странным (то есть нарушало эту де-факто спецификацию, которую я упомянул).
Так что я говорю, продолжайте и зависите от этого. Это не общая рекомендация зависеть от любого старого неопределенного поведения, которое вы хотите. Но в этом случае тебе просто не повредит.