如何在java中从HashMap返回密钥内容?

如何在java中从HashMap返回密钥内容?,java,collections,hashmap,Java,Collections,Hashmap,正在进行一个小项目,该项目将一些学生的记录作为数据库存储在HashMap中 private HashMap<String, Student> studentDb = new HashMap<String, Student>(); private HashMap studentDb=new HashMap(); 我的应用程序有一个UI,允许用户选择任何字符串作为键记录。它可以是数字或字母。创建每个记录时,会从另一个类中创建一个对象,该类将信息保存在其字段中,但它不会存储

正在进行一个小项目,该项目将一些学生的记录作为数据库存储在HashMap中

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

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

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

我希望我能解释我的问题。 多谢各位


编辑:

这是一个请求的输出,但问题是我从他们插入请求的文本字段中读取学生的Id,这有点作弊。我想知道是否可以从集合本身驱动它。

从HashMap集合驱动它是什么意思? hashmap按键(在本例中为字符串)存储数据。为了访问特定的值,您需要知道它的键。如果我理解正确,您想要做的是:

map.get("myKey").getKey();
这没有道理。
您可以使用keySet()方法迭代映射中的所有键。但我不确定这就是您要找的。

可以使用以下内容:

工作版本:

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));
        }

    }
}

当前如何显示该值?或者,我实例化我的对象所使用的类中的toSting方法生成要显示的消息。您是否也可以共享此实现。如果键为
String
,则映射中的键与用于查找的键之间应该没有区别。我在JOptionPane.showMessageDialog中显示结果。它为每个对象调用共同响应的toString。您可能应该将ID存储为
Student
对象的一部分。@shmosel,我不能这样做。这在项目简介中受到了限制。问题是,当我从student类单独创建每个对象(student)时,它们不会将其密钥传递给构造函数(这在项目简介中是一个限制),因此student类的方法无法访问包括toStrong方法在内的密钥。如果您可以访问映射,然后,您可以始终使用entrySet()方法并针对您的学生测试每个条目。类似这样的内容:for(Entry:map.entrySet()){//test Entry.getValue().equals(yourstuent)//如果等于,则使用Java8
HashMap studentDb=newHashMap()调用Entry.getKey()}是的。它工作了,但使用了if(studentDb.get(key.equals)(/*STUDENT-OBJECT*/)。非常感谢。
...

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

...