Ответ 1
Вы не можете сделать это с помощью HashMap
, который не поддерживает порядок вставки в любом месте своих данных. Посмотрите LinkedHashMap
, который был разработан именно для поддержания этого порядка.
Я пытаюсь поместить некоторые ключевые значения в 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
Вы не можете сделать это с помощью HashMap
, который не поддерживает порядок вставки в любом месте своих данных. Посмотрите LinkedHashMap
, который был разработан именно для поддержания этого порядка.
HashMap
- хеш-таблица. Это означает, что порядок, в котором вставлены ключи, не имеет значения, поскольку они не хранятся в этом порядке. В тот момент, когда вы вставляете другой ключ, информация о том, что была последним ключом, была забыта.
Если вы хотите запомнить порядок вставки, вам нужно использовать другую структуру данных.