public static void compareTravelBalance(Map<String, Integer> travelCosts, Map<String, Integer> travellerBalances){
Set set = travelCosts.entrySet();
Iterator iterator = set.iterator();
Set set1 = travellerBalances.entrySet();
Iterator iterator1 = set1.iterator();
while(iterator.hasNext()) {
Map.Entry mentry = (Map.Entry)iterator.next();
Map.Entry mapEntry= (Map.Entry) iterator1.next();
int cost = (Integer) mentry.getValue();
int balance = (Integer) mapEntry.getValue();
if(travellerBalances.containsKey(mentry.getKey())){
if(cost>balance){
System.out.println("Insufficient funds for "+mentry.getKey()+": Cost: "+cost+" Balance: "+balance);
}
else if(cost<=balance){
System.out.println("Approved! for: "+mentry.getKey()+": Cost: "+cost+" Balance: "+balance);
}
}
else{
System.out.println("Traveller ID "+mentry.getKey()+" does not exist");
}
}
}
Выше мой код.У меня есть два CSV, данные которых я сохраняю в двух разных TreeMaps - travelCosts и travellerBalances.Ключевыми парами значений являются travellerId в качестве key и travelCost в качестве значения в первом TreeMap и travelBalance в качестве значения во втором TreeMap.
Я пытаюсь сравнить два значения из разных карт в зависимости от travellerId.Таким образом, если стоимость> баланс, он должен печатать Недостаточно средств.Если стоимость <= баланс, он должен напечатать Утверждено.Если не найдено ни одного ключа, путешественник не существует. </p>
Я прикрепил файлы CSV, которые покажут вам мои данные на картах.
Проблема заключается в следующем: если вы посмотрите на данные, он сравнивает Travellerid 2001 с 2002 и 2002 с 2003 и так далее.Вместо этого следует сказать, что 2001 год не существует.Надеюсь, у меня есть смысл.Пожалуйста, спросите, если вам нужна дополнительная информация.
Спасибо. Путевые расходы: первый столбец TravelLid, а третий столбец TravelCost
Баланс командировок - первый столбец TravelLid и третий столбец TravelBalance