- 此练习主要是对HashMap的应用,一开始觉得不用HashMap类也可以,但是其很大的一个便捷处就是将城市名(key)-行列数(value)绑在一起,可以不用构建它们之间的映射关系.因此能够直接输入城市名获取距离.
package hash;
import java.util.HashMap;
import java.util.Scanner;
public class Hashmap {
private HashMap<String,Integer> line = new HashMap<String,Integer>();
private int i = 0;
private int[][] dis;
Scanner in = new Scanner(System.in);
public Hashmap(){
System.out.println("请输入城市名");
String str;
while(!(str = in.next()).equals("###")) {
line.put(str,i++);
}
System.out.println("已完成城市录入");
dis = new int[i][i];
}
public void setcity(){
for(int j=0;j<i;j++) {
for(int k=0;k<i;k++) {
dis[j][k]=in.nextInt();
}
}
System.out.println("已完成距离录入");
}
public void getdis() {
System.out.println("请输入两个城市名");
System.out.println(dis[line.get(in.next())][line.get(in.next())]);
}
public static void main(String[] args) {
Hashmap h = new Hashmap();
h.setcity();
h.getdis();
}
}