Строго говоря, порядок итерации HashMap почти наверняка не недетерминированный. Подобно подавляющему большинству вычислительных процессов, если вы пройдете через него точно так же, результаты будут точно такими же. Поистине недетерминированная система будет включать в себя некоторый внешний случайный элемент, который вряд ли будет иметь место здесь. По крайней мере, в большинстве случаев.
Что они действительно означает, что именно потому, что карта содержит определенный набор элементов, вы не должны ожидать, что когда вы будете перебирать их, они выйдут в определенном порядке. Это не означает, что порядок итераций равен случайным, это просто означает, что в качестве разработчика вы не должны знать, что это такое.
В большинстве случаев причина этого в том, что будет определенная зависимость от некоторых деталей реализации, которые могут варьироваться от платформы к платформе и/или от порядка доступа. И последнее, в свою очередь, может определяться расписанием потоков и временем событий, которые врожденно непредсказуемы.
В большинстве случаев на любой отдельной платформе и с наиболее распространенной моделью резьбы - однопоточное приложение - если вы всегда вставляете и удаляете определенный набор вещей в последовательности X, вы всегда будете получать их в последовательности Y Просто Y будет так сильно зависеть от X и на платформе, что нет смысла даже думать о том, что это будет.
В принципе, хотя он не является случайным, это может быть так же хорошо.
что вы можете положиться на них, находясь в любом порядке. –
Вот аналогичный вопрос: http://stackoverflow.com/questions/3527216/hashmap-index-issue –