java HashMap.entrySet()是否按插入顺序遍历HashMap?

java HashMap.entrySet()是否按插入顺序遍历HashMap?,java,hashmap,Java,Hashmap,在遍历Integer到String的HashMap时,假设我按以下顺序插入值 HashMap<Integer, String> hash_map = new HashMap<>(); hash_map.put(0, "check"); hash_map.put(1, "ok"); hash_map.put(2, "what"); hash_map.put(4, "why"); HashMap

在遍历Integer到String的HashMap时,假设我按以下顺序插入值

HashMap<Integer, String> hash_map = new HashMap<>();
hash_map.put(0, "check");
hash_map.put(1, "ok");
hash_map.put(2, "what");
hash_map.put(4, "why");
HashMap hash_map=newhashmap();
hash_映射put(0,“check”);
hash_-map.put(1,“ok”);
hash_-map.put(2,“what”);
hash_map.put(4,“为什么”);

当我使用hash_map.entrySet()遍历HashMap时,我会按照插入顺序遍历它吗?或者它是一个随机顺序?

当您需要一个映射而不关心顺序时(当您迭代它时),那么HashMap是正确的选择

如果需要插入顺序,请尝试LinkedHashMap


尝试阅读以下内容:

hashmap中的顺序以及hash集不按插入顺序进行OGRANIZE。来自:“此类不保证映射的顺序;特别是,它不保证顺序随时间保持不变。”我想这篇文章可以帮助你:你需要
LinkedHashMap
来保证秩序。@uddhavhagat文档上说区别是什么?--“返回此映射中包含的键的集合视图”,返回类型为
Set
——“返回此映射中包含的映射的集合视图”,返回类型为
Set
。我没有从java.util导入LinkedHashMap的选项。为什么?不确定可能是IDE问题。。但是它应该在那里
import java.util.LinkedHashMap