Getting first the first thing in HashMap?
所以我创建了一个哈希图,但是我需要得到我输入的第一个键。这是我使用的代码:
第一:
1
| public static Map <String, Inventory > banks = new HashMap <String, Inventory >(); |
第二:
1 2 3
| for(int i = 0; i < banks.size(); i++) {
InventoryManager.saveToYaml(banks.get(i), size, //GET HERE);
} |
上面写着//到这里,我想从hasmap中得到字符串。谢谢你的帮助。
hashmap不管理键的插入顺序。
应该使用LinkedHashMap,因为它提供了可预测的迭代顺序,通常是键插入到映射中的顺序(插入顺序)。
可以使用mapEntry方法在LinkedHashMap上迭代。所以这里是您需要在代码中做的事情。首先,将您的银行地图从hashmap更改为linkedhashmap:
1
| public static Map <String, Inventory > banks = new LinkedHashMap <String, Inventory >(); |
然后简单地重复如下:
1 2 3
| for (Map. Entry<String, Inventory > entry : banks. entrySet()) {
InventoryManager. saveToYaml(entry. getValue(), size, entry. getKey());
} |
如果您只需要LinkedHashMap的第一个元素,那么可以这样做:
1
| banks.entrySet().iterator().next(); |
- 这不能回答问题。
- @波西米亚人用更多的细节更新了答案。
- 嗯,你刚刚抄了我的答案。你能做的最起码是给我点信任…
- @Ó;scarl&243;pez它不是复制的,而是使用与questionner代码相同的语法和变量名。但你还是应该发现一些不同。你已经有我的投票权了:-)
回答标题中的问题:要获取插入的第一个密钥,请执行以下操作:
1 2 3 4
| public static Map <String, Inventory > banks
= new LinkedHashMap <String, Inventory >();
String firstKey = banks. keySet(). iterator(). next(); |
请注意,在遍历映射时,必须使用LinkedHashMap来保留相同的插入顺序。要按顺序迭代每一个键,从第一个键开始,请执行以下操作(我相信这是您想要的操作):
1 2 3
| for (Map. Entry<String, Inventory > entry : banks. entrySet()) {
InventoryManager. saveToYaml(entry. getValue(), size, entry. getKey());
} |