You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Java中实现PrintSolution函数以遍历打印城市数组?

问题解决:实现PrintSolution函数并修正PrintCity方法

首先要明确:你现有的PrintCity静态无参方法无法满足打印每个城市实例信息的需求——它只能访问类的静态成员,没法获取数组中每个Cities对象的专属属性。下面提供两种可行的实现方案:

方案1:将PrintCity改为实例方法

把PrintCity改为Cities类的实例方法,让它直接访问当前对象的属性:

public class Cities {
    // 假设类内有这些属性(建议封装为私有,通过实例方法访问)
    private String cityId;
    private int City_X_Location;
    private int City_Y_Location;

    // 构造方法、属性的setter/getter省略

    public void PrintCity() {
        System.out.println(cityId + " " + City_X_Location + " " + City_Y_Location);
    }
}

然后实现PrintSolution函数,遍历数组调用每个实例的PrintCity:

public static void PrintSolution(Cities[] c) {
    // 普通for循环写法
    for (int i = 0; i < c.length; i++) {
        // 增加非空判断,避免空指针异常
        if (c[i] != null) {
            c[i].PrintCity();
        }
    }

    // 或者更简洁的增强for循环写法
    for (Cities city : c) {
        if (city != null) {
            city.PrintCity();
        }
    }
}

方案2:修改PrintCity为接收Cities参数的静态方法

如果要保留PrintCity的静态特性,修改它来接收Cities实例作为参数,通过实例获取属性:

public class Cities {
    private String cityId;
    private int City_X_Location;
    private int City_Y_Location;

    // 构造方法、getter方法(推荐用getter访问私有属性)
    public String getCityId() {
        return cityId;
    }

    public int getCityXLocation() {
        return City_X_Location;
    }

    public int getCityYLocation() {
        return City_Y_Location;
    }

    public static void PrintCity(Cities city) {
        System.out.println(city.getCityId() + " " + city.getCityXLocation() + " " + city.getCityYLocation());
    }
}

对应的PrintSolution实现:

public static void PrintSolution(Cities[] c) {
    // 普通for循环写法
    for (int i = 0; i < c.length; i++) {
        if (c[i] != null) {
            Cities.PrintCity(c[i]);
        }
    }

    // 增强for循环写法
    for (Cities city : c) {
        if (city != null) {
            Cities.PrintCity(c[i]);
        }
    }
}

内容的提问来源于stack exchange,提问作者NewCoder2001

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 20:45:35