有没有一种优雅的方式只获得一个Entry<K,V>
来自 HashMap,如果 key 未知,则无需迭代。
由于输入顺序并不重要,我们可以说类似
hashMapObject.get(zeroth_index);
虽然我知道不存在这种按索引获取的方法。
如果我尝试下面提到的方法,它仍然需要获取 HashMap 的所有条目集。
for(Map.Entry<String, String> entry : MapObj.entrySet()) {
return entry;
}
欢迎提出建议。
编辑:请建议任何其他满足要求的数据结构。
最佳答案
map 没有顺序,因此没有“第一个条目”之类的东西,这也是 Map
(或 HashMap
)。
你可以这样做:
Map<String, String> map = ...; // wherever you get this from
// Get the first entry that the iterator returns
Map.Entry<String, String> entry = map.entrySet().iterator().next();
(注意:省略检查空 map )。
您的代码不会获取映射中的所有条目,它会立即返回(并跳出循环)找到第一个条目。
打印第一个元素的键和值:
System.out.println("Key: "+entry.getKey()+", Value: "+entry.getValue());
注意:调用 iterator()
并不意味着您正在迭代整个 map 。
关于java - 如何在不迭代的情况下从 HashMap 中获取一个条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1509391/