相对于唯一键,如何在哈希图中存储多个值

|| 嗨,我必须使用UI显示的值来验证数据库值,因此我将Watij用作自动化工具。 当我必须将数据库值存储到哈希图中时,就会出现问题。 假设数据库有3个字段,名称,电子邮件和地址。 触发查询后,获取的行为10。 我将字段值作为哈希图中的键,并将检索到的行作为值。 我无法将值存储在哈希图中。当我使用哈希图时,值被覆盖,最后我总是得到各个键的单个值。我试图声明具有两个参数的哈希图,分别为字符串和字符串[],但我无法读取最终值。 任何人都可以帮忙,因为我不是Java专家。 谢谢。     
已邀请:
        您在哪里声明了字符串?您将必须在循环(在结果集中循环)内声明它。如果您不在循环内创建新对象,则相同字符串的引用将存储在哈希图中的所有值中,并且您将在哈希图中获得单个值。如果此处还提到了代码,则可以很容易地找到确切的问题。     
        在将对象存储在哈希图中时,可以将该对象的哈希码用作键,然后可以将对象本身保存为值,但是请确保正确实现
hasCode()
equals
方法,如您所知,hashmap内部使用了
hashcode()
和\'等于用于存储数据的方法。 现在,当实现哈希码或equals方法时,您可以使用您认为唯一标识该行的任何属性(该行的列)。 而且,在性能方面,这将是更好的方法。     
        您可以像
HashMap<String, Data>
这样创建一个映射,其中第一个参数是键(我想是
String
,可以使用所需的值),而
Data
是一个包含键的数据值的类。
Data
可能是:
public class Data {

    private String name;
    private String address;
    private String email;

    ...
}
您可以使用
map.put(key, new Data(...))
将对象添加到地图。 一个更简单的方法是在类似于
HashMap<String,String[]>
的地图中使用数组,但不是很有用。具有DB查询的Java思想是创建对象以封装每条记录。     
        在地图中,键必须是唯一的,因此,如果您继续添加(email,blabla @ hotmail.com)并且它已经具有(email,nana @ gmail.com),则您将覆盖第一个。如果您只需要电子邮件,地址和姓名的列表,那么最好创建一个名为person或诸如此类的类并将其添加到列表中会更好吗? 像人员(姓名,电子邮件,地址)一样,然后将其添加到列表中。     

要回复问题请先登录注册