- 题目
package countrysearching;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
//用ArrayList来记录输入的城市,并已‘###’结束
ArrayList<String> cities = new ArrayList<String>();
String city = in.next();
while(! city.equals("###")) {
cities.add(city);
city = in.next();
}
//用Distance对象记录输入的城市和对应的里程数
Distances allDistances = new Distances();
for(int i=0; i<cities.size(); i++) {
String cityA = cities.get(i);
allDistances.addCityA(cityA);
for(int j=0; j<cities.size(); j++) {
String cityB = cities.get(j);
int dis = in.nextInt();
allDistances.addCityB_Distance(cityA, cityB, dis);
}
}
//读取两个城市,输出两者间的里程数
String city1 = in.next();
String city2 = in.next();
System.out.println(allDistances.getDistance(city1, city2));
in.close();
}
}
class Distances{
private HashMap<String, HashMap<String,Integer>> allDistances = new HashMap<String, HashMap<String,Integer>>();
public void addCityA(String city) {
allDistances.put(city, new HashMap<String, Integer>());
}
public void addCityB_Distance(String cityA, String cityB, int dis) {
allDistances.get(cityA).put(cityB, dis);
}
public int getDistance(String cityA, String cityB) {
return allDistances.get(cityA).get(cityB);
}
}
未加入输入提示,需要Debug来清晰输入值