gpt4 book ai didi

java - map - 不断获取哈希码而不是访问值

转载 作者:行者123 更新时间:2023-11-30 09:49:48 26 4
gpt4 key购买 nike

我创建了一个 map 如下:

private Map<String, List<Client>> clientCatalogue;
this.clientCatalogue = new TreeMap<String, List<Client>>();

键是客户名称,值是客户详细信息列表。

我正在使用 keySet() 对其进行迭代。我想一次访问一个与键关联的每个值列表,然后在移动到下一个值列表之前对每个值进行进一步处理。我已将这些值复制到一个列表类型变量 (clientDetails) 中,并认为我会将它们打印出来进行检查。但我一直在找回哈希码。这是为什么,我该怎么做才能解压这些哈希码并访问我想要的值?任何建议表示赞赏。

List<Client> clientDetails;
clientDetails = new ArrayList<Client>();
for (String eachClient : this.clientCatalogue.keySet())
{
clientDetails = clientCatalogue.get(eachClient);
System.out.println("Details of client are: " + clientDetails);
}

最佳答案

试试这个:

for (String eachClient : this.clientCatalogue.keySet())
{
List<Client> clientDetails; = clientCatalogue.get(eachClient);

for(Client cl : clientDetails)
{

System.out.println("Details of client are: " + cl.toString());
}
}

问题是您打印的是整个列表,而不是列表中的单个客户端。

顺便说一句,您需要为 toString() 正确实现Client 中的方法类。

您也不需要为 List<Clients> clientDetails 创建一个新实例.

此外,如果您不想迭代键而是直接迭代值,请执行以下操作:

for (List<Client> clientDetails : this.clientCatalogue.values())
{
for(Client cl : clientDetails)
{
System.out.println("Details of client are: " + cl.toString());
}
}

关于java - map - 不断获取哈希码而不是访问值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5586265/

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