最初に、ページで学生名のリストを選択し、アドレスの詳細を取得するために送信します。StudentNamesはstudentDetailMapListに格納されます。リストをループしながら、学生名をAddressDetailsMapと比較してaddressDetailsを取得します。同じ名前の学生がいる場合、最初の反復は正確なアドレスを返しますが、2番目の反復が発生すると、2番目の学生のアドレスではなく1番目の学生のアドレスを返します。重複した値を取得しています。
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;
}
マップと比較しながら重複を回避する方法はありますか?どうもありがとう。