Java对象未保存其atribute值

Java对象未保存其atribute值,java,dictionary,object,Java,Dictionary,Object,下午好 我有一个类City,它接收到与其他城市对象的不同距离值 但是,在创建城市并添加距离后,每个城市都会获得相同的距离值,这些值是上次添加的城市的值 也就是说,在运行之后,cityA.toString的输出应该是{B=5,C=4,D=7,E=6,F=5,G=7,H=4,I=2,J=9},而不是{A=6,B=5,C=5,D=6,E=4,F=8,G=5,H=4,I=3,J=8} 你知道我做错了什么吗?谢谢 public class City { private String name; priv

下午好

我有一个类City,它接收到与其他城市对象的不同距离值

但是,在创建城市并添加距离后,每个城市都会获得相同的距离值,这些值是上次添加的城市的值

也就是说,在运行之后,cityA.toString的输出应该是{B=5,C=4,D=7,E=6,F=5,G=7,H=4,I=2,J=9},而不是{A=6,B=5,C=5,D=6,E=4,F=8,G=5,H=4,I=3,J=8}

你知道我做错了什么吗?谢谢

public class City {

private String name;
private static HashMap<String, Integer> distancias;

public City(String name){
    this.name = name;
    distancias = new HashMap<String, Integer>();
}

public void insertDistances(City city, int dist) {
    distancias.put(city.getName(), dist);
}


public static void main(String[] args) {

    City cityA = new City("A");
    City cityB = new City("B");
    City cityC = new City("C");
    City cityD = new City("D");
    City cityE = new City("E");
    City cityF = new City("F");
    City cityG = new City("G");
    City cityH = new City("H");
    City cityI = new City("I");
    City cityJ = new City("J");

    cityA.insertDistances(cityB, 5);
    cityA.insertDistances(cityC, 4);
    cityA.insertDistances(cityD, 7);
    cityA.insertDistances(cityE, 6);
    cityA.insertDistances(cityF, 5);
    cityA.insertDistances(cityG, 7);
    cityA.insertDistances(cityH, 4);
    cityA.insertDistances(cityI, 2);
    cityA.insertDistances(cityJ, 9);

    cityB.insertDistances(cityA, 6);
    cityB.insertDistances(cityC, 5);
    cityB.insertDistances(cityD, 6);
    cityB.insertDistances(cityE, 4);
    cityB.insertDistances(cityF, 8);
    cityB.insertDistances(cityG, 5);
    cityB.insertDistances(cityH, 4);
    cityB.insertDistances(cityI, 3);
    cityB.insertDistances(cityJ, 8);

}

}
公共级城市{
私有字符串名称;
私有静态哈希映射距离;
公共城市(字符串名称){
this.name=名称;
distance=newhashmap();
}
公共空间插入距离(城市,国际区){
distance.put(city.getName(),dist);
}
公共静态void main(字符串[]args){
城市A=新城(“A”);
城市B=新城(“B”);
City cityC=新城(“C”);
City cityD=新城(“D”);
城市=新城(“E”);
City cityF=新城(“F”);
城市G=新城(“G”);
City cityH=新城(“H”);
城市I=新城(“I”);
城市J=新城(“J”);
城市A.插入距离(城市B,5);
cityA.插入距离(cityC,4);
cityA.插入距离(cityD,7);
城市。插入距离(城市,6);
城市。插入距离(城市F,5);
城市.插入距离(城市G,7);
城市。插入距离(城市H,4);
cityA.插入距离(cityI,2);
城市a.插入距离(城市j,9);
城市b.插入距离(城市,6);
城市b.插入距离(城市c,5);
城市B.插入距离(城市YD,6);
城市b.插入距离(城市4);
城市B.插入距离(城市F,8);
城市B.插入距离(城市G,5);
城市b.插入距离(城市h,4);
城市b.插入距离(城市i,3);
城市b.插入距离(城市j,8);
}
}
私有静态哈希映射距离;
消除静电 改用
专用HashMap distance
`


静态变量对于类的所有实例(或对象)都是通用的,因为它是类级别的变量。

distance
方法中删除
static
修饰符
toString
方法在哪里?是因为
私有静态HashMap distance是静态的
private static HashMap<String, Integer> distancias;