Подтвердить что ты не робот

Как получить ключи в Карте с той же последовательностью, в которую они были вставлены

Я пытаюсь поместить некоторые ключевые значения в Map и попытаться восстановить их в той же последовательности, в которую они были вставлены. Например ниже мой код

import java.util.*;
import java.util.Map.Entry;

public class HashMaptoArrayExample {

    public static void main(String args[])

    {
   Map<String,Integer> map=  new HashMap<String,Integer>();

   // put some values into map

   map.put("first",1);
   map.put("second",2);
   map.put("third",3);
   map.put("fourth",4);
   map.put("fifth",5);
   map.put("sixth",6);
   map.put("seventh",7);
   map.put("eighth",8);
   map.put("ninth",9);



    Iterator iterator= map.entrySet().iterator();
       while(iterator.hasNext())
       {
           Entry entry =(Entry)iterator.next();   
           System.out.println(" entries= "+entry.getKey().toString());
       }

    }
}

Я хочу получить ключи ниже

first second third fourth fifth sixth .....

Но он отображается в некотором случайном порядке, как показано ниже в моем выпуске

OUTPUT

ninth eigth fifth first sixth seventh third fourth second
4b9b3361

Ответ 1

Вы не можете сделать это с помощью HashMap, который не поддерживает порядок вставки в любом месте своих данных. Посмотрите LinkedHashMap, который был разработан именно для поддержания этого порядка.

Ответ 2

HashMap - хеш-таблица. Это означает, что порядок, в котором вставлены ключи, не имеет значения, поскольку они не хранятся в этом порядке. В тот момент, когда вы вставляете другой ключ, информация о том, что была последним ключом, была забыта.

Если вы хотите запомнить порядок вставки, вам нужно использовать другую структуру данных.