首先在HashMap中获得第一件事?

时间:2013-08-11 01:03:44

标签: java hashmap

所以我创建了一个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。 谢谢你的帮助。

2 个答案:

答案 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());
}