У меня есть программа, в которой имена доноров добавляются в качестве ключа в HashMap с их городами (ArrayList of city) в качестве значения. Итак, я должен взять имя донора и сначала проверить, доступно ли это имя на карте или нет, если имя доступно и донор делает пожертвования из другого города, тогда мне нужно обновить список городов на карте и если это новый донор, тогда мне нужно просто добавить донора на карту.
Если кто-то может помочь мне с этой проблемой, я столкнулся с большим кризисом из-за этого. Полностью застрял.
Я приложил свой код.
import java.util.Scanner;
import java.util.ArrayList;
import java.util.HashMap;
public class MultCityMain {
public static void main(String[] args) {
// TODO Auto-generated method stub
CollectionUtil cu = new CollectionUtil();
String donorName,city;
Scanner sc = new Scanner(System.in);
ArrayList<String> donorCity = new ArrayList<String>();
boolean choiceFlag = true;
while(choiceFlag){
System.out.println("Enter name");
donorName = sc.nextLine();
System.out.println("Enter city name");
city = sc.nextLine();
ArrayList<String> newCity = cu.nameKeyChecker(donorName,donorCity);
newCity.add(city);
cu.addDonor(donorName, newCity);
System.out.println("donate again? (1/0)");
int choice = sc.nextInt(); sc.nextLine();
if(choice == 1)
choiceFlag = true;
else
choiceFlag = false;
}
System.out.println(CollectionUtil.donorMap);
}
}
import java.util.ArrayList;
import java.util.HashMap;
public class CollectionUtil {
static HashMap<String, ArrayList<String>> donorMap = new HashMap<>();
public ArrayList<String> nameKeyChecker(String name, ArrayList<String> city){
if(donorMap.containsKey(name))
return (ArrayList<String>)donorMap.get(name);
else
donorMap.put(name, city);
return (ArrayList<String>)donorMap.get(name);
}
public void addDonor(String name, ArrayList<String> city){
donorMap.put(name, city);
}
}