gpt4 book ai didi

java - 与 map 比较时获取重复值

转载 作者:行者123 更新时间:2023-11-28 09:48:36 24 4
gpt4 key购买 nike

最初,我将在页面中选择学生姓名列表并提交以获取地址详细信息。StudentNames 将存储在 StudentDetailMapList 中。在循环列表时,我会将学生姓名与 AddressDetailsMap 进行比较以检索地址详细信息。但是,当存在同名学生时,第一次迭代返回确切的地址,但当第二次迭代发生时,它再次返回第一个学生地址而不是第二个学生地址。它正在获取重复值

for (i=studentDetailMapList.values().iterator;i.hasNext();)
{
detailMap = (Map)i.Next();
sDetails = (StudentDetails)detailMap.get("Student");
student = sDetails.getRollNo();
StudentAddressDetails studentAddressDetails = getDetailswithAddress(AddressDetailsMap,sDetails);
}

private StudentAddressDetails getDetailswithAddress(Map AddressDetailsMap,sDetails student)
{
StudentAddressDetails addDetails = null;
try{
for(Iterator itr = AddressDetailsMap.values().iterator();itr.hasNext();){
addDetails = (StudentAddressDetails )itr.next();
if( (addDetails != null) && (addDetails.getStudentID().equals(student.getId()))){
return addDetails;
}
}
}catch(Throwable t){
return null;
}
return null;
}

有没有办法避免与 map 比较时重复?非常感谢。

最佳答案

您遇到的问题是您使用了错误的 map 数据结构。

映射是将键映射到值的对象。映射不能包含重复的键;每个键最多可以映射到一个值。

同一个名称不能有多个地址,您应该使用 map 的其他属性,也许是学生 ID,甚至列表的索引在这种情况下也应该起作用。

关于java - 与 map 比较时获取重复值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11415914/

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