打算用面向对象思想,写个求最小生成树问题。写了一半,就出现问题了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); } }