打算用面向对象思想,写个求最小生成树问题。写了一半,就出现问题了import java.util.HashMap;
public class City {
private String cityName;
private HashMap<City, Double> adjCities = new HashMap<City, Double>();
public City(String cityName) {
this.cityName = cityName;
}
public void addAjdCity(City city, double cost) {
adjCities.put(city, cost);
// System.out.println("test1");
city.adjCities.put(this, cost);
// System.out.println("test2");
}
public void removeAjdCity(City city) {
}
public void removeAjdCity(String cityName) {
}
public String toString() {
return cityName + ":" + "\n" + adjCities;
}
public static void main(String[] args) {
City c1 = new City("上海");
City c2 = new City("杭州");
c1.addAjdCity(c2, 100);
// 怎么输出c1 c2时会出问题?StackOverflowError异常。如果把最后两句println注释掉,就不会报错??
System.out.println(c1);
System.out.println(c2);
}
}