gpt4 book ai didi

java - 哈希表 : printing specific entries

转载 作者:行者123 更新时间:2023-11-29 07:08:46 25 4
gpt4 key购买 nike

我想编写一个程序来打印出 HashMap 的条目“0”和“4”(即 entry.getKey(0) 和 entry.getKey(4) 但它不允许我这样做)是使用我已经拥有的东西的另一种方式吗?

基本上我有这个:

HashMap<String, Integer> hm = new HashMap<String, Integer>();

我可以使用这段代码遍历每个条目:

for (Map.Entry<String,Integer> entry : hm.entrySet())
{
System.out.println(entry.getKey() + "/" + entry.getValue());
}

由于人们要求提供更多上下文信息,因此我将一组字符串存储在 HashMap 中。例如,第 0 个条目是“Bob”,第 1 个条目是“Mindy”,第 2 个是“Yasser”,第 3 个是“Greg”,第 4 个是“Jacky”。我希望程序打印出填充的 HashMap 的第 0 个和第 4 个条目。

最佳答案

如果你指定了Map中的键,你可以直接使用get()方法。像这样,

Integer value = hm.get("0");

如果你想迭代然后使用类似下面的代码:

HashMap<String, Integer> hm = new HashMap<String, Integer>();
for (Entry<String, Integer> entry : hm.entrySet())
{
String key = entry.getKey();
if(key.equals("0") || key.equals("1"))
System.out.println(key + "/" + entry.getValue());
}

您不能将索引传递给 getKey() getKey(0) 等方法。请参阅文档。

HashMap class 不保证 map 的顺序;特别是,它不保证顺序会随着时间的推移保持不变。因此,如果您希望根据索引从 HashMap 中获取值,这可能是不可能的。最接近您的要求的是 LinkedHashMap , 它维护插入/访问顺序的键顺序。

HashMap 基于散列原理,我们有 put(key, value)get(key) 方法来存储和检索对象来自 HashMap。当我们将 Key 和 Value 对象传递给 Java HashMap 上的 put() 方法时,HashMap 实现调用 hashCode() Key 对象上的方法,并将返回的 hashcode() 应用到它自己的哈希函数中,以找到用于存储 Entry 对象的存储桶位置,值得一提的是,Java 中的 HashMap 存储两者存储桶中作为 Map.Entry 的键和值对象,这对于理解检索逻辑至关重要。

关于java - 哈希表 : printing specific entries,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16504680/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com