所以我创建了一个hashmap,但我需要得到我输入的第一个密钥。 这是我正在使用的代码:
首先:
public static Map<String, Inventory> banks = new HashMap<String, Inventory>();
第二
for(int i = 0; i < banks.size(); i++) {
InventoryManager.saveToYaml(banks.get(i), size, //GET HERE);
}
它在哪里说//获取这里我想从hasmap获取String。 谢谢你的帮助。
答案 0 :(得分:14)
HashMap不会管理键的插入顺序。
应该使用LinkedHashMap,因为它提供了可预测的迭代顺序,通常是键插入映射的顺序(插入顺序)。
您可以使用MapEntry方法迭代LinkedHashMap。因此,您需要在代码中执行此操作。首先将您的银行地图从HashMap更改为LinkedHashMap:
public static Map<String, Inventory> banks = new LinkedHashMap<String, Inventory>();
然后简单地迭代它:
for (Map.Entry<String, Inventory> entry : banks.entrySet()) {
InventoryManager.saveToYaml(entry.getValue(), size, entry.getKey());
}
如果您只需要LinkedHashMap的第一个元素,那么您可以这样做:
banks.entrySet().iterator().next();
答案 1 :(得分:6)
回答标题中的问题:要获取插入的第一个键,请执行以下操作:
public static Map<String, Inventory> banks
= new LinkedHashMap<String, Inventory>();
String firstKey = banks.keySet().iterator().next();
请注意,在迭代地图时,必须使用LinkedHashMap
来保留相同的广告订单。要按顺序迭代每个键,从第一个开始,执行此操作(我相信这是您的意图):
for (Map.Entry<String, Inventory> entry : banks.entrySet()) {
InventoryManager.saveToYaml(entry.getValue(), size, entry.getKey());
}