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