java - 哈希表 : printing specific entries

标签 java

我想编写一个程序来打印出 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/

相关文章:

java - 如何将我的 J2ME 应用程序放入移动设备中?

java - 在 JOOQ 中使用有符号整数

java - 在 Fragment 的 onAttach(Activity) 中存储 Activity

java - 在 swt 中提交的多行文本上使用 Tab 键?

java - 从 JAX-RS 服务获取资源时出错

java - 在Java中通过IP连接到服务器时出现ConnectException

java - 如何在java中创建旋转按钮?

java - Apache-cxf JAXRSClient 自定义日期格式

java - 如何将多个选项分配给多个列表项?

java - 如何获取 HTML 文档中的 html 标签