java - 如何在不迭代的情况下从 HashMap 中获取一个条目

标签 java collections

有没有一种优雅的方式只获得一个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/

相关文章:

Java Spring : How to declare maven dependency to gradle

java - IBM MQ :Message is published as Binary but sending as String

java - 使用 Java Streams 通过 HashSet 生成整数集

java - 无法将 Map<String, List<String>> 转换为 Map<String, Iterable<String>>

java - 使用类构造函数创建 2 种不同类型的对象数组

java - 错误 : Java heap space

Java - 未找到 JSONObject

java - 如何在java中序列化列表?

Java Collections.sort() 缺少 ConcurrentModificationException

python - 设置 Python 的 collections.defaultdict 的默认字符串值