如何从Java中的HashMap返回关键内容?

时间:2017-03-02 17:51:16

标签: java collections hashmap

处理一个小项目,将一些学生的记录存储在HashMap中作为数据库。

private HashMap<String, Student> studentDb = new HashMap<String, Student>();

我的应用程序有一个UI,允许用户选择任何字符串作为键记录。它可以是数字或字母。创建每个记录,从另一个类创建一个对象,将信息保存在其字段中,但不应该存储密钥。

存储了所有数据后,他们可以请求查看到目前为止已存储的所有数据。我实例化对象的类中的toSting方法生成要显示的消息。

在显示时,我需要显示他们选择的密钥和其余存储的数据,他们可能不会要求所有这些。问题是,我如何才能访问给定记录的密钥?假设我不想使用用户在请求时输入的密钥。有没有办法从HashMap集合中驱动它?

我希望我能解释一下我的问题。 谢谢。

编辑:

enter image description here

这是请求的输出,但问题是我从文本字段中读取了学生的ID,他们插入了请求,这是一种作弊行为。我想知道我是否可以从收藏品本身开车。

2 个答案:

答案 0 :(得分:1)

可以使用这样的东西:

工作版:

import java.util.HashMap;

public class test{

    public static void main(String[] args){

        HashMap<String, String> studentDb = new HashMap<String, String>();

        studentDb.put("1","A");
        studentDb.put("2","B");
        studentDb.put("3","C");

        for(String key : studentDb.keySet()){
            System.out.println(studentDb.get(key));
        }

    }
}

你可以为你的情况做些什么:

...

for(String key : studentDb.keySet()){
    if(studentDb.get(key)==/* STUDENT OBJECT */){
        // Display / do something with the key.
    }
}

...

答案 1 :(得分:0)

你是什么意思&#34;从HashMap集合驱动它&#34;? 您的hashmap按键存储数据(在本例中为String)。要访问特定值,您需要知道其密钥。如果我理解正确,你想要做的事情就像:

map.get("myKey").getKey();

哪个没有意义。 你可以做的是使用keySet()方法遍历地图中的所有键。但我不确定你在寻找什么。