Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/395.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 返回人口最多的城市名称_Java_Arraylist - Fatal编程技术网

Java 返回人口最多的城市名称

Java 返回人口最多的城市名称,java,arraylist,Java,Arraylist,返回类型为“ProvinceTerritory”。 哪个是类名 getPopulation()和getName()是ProvinceTerritory类中的访问器。 另外,省是包含所有城市及其人口的ArrayList的名称。我正在尝试使用forach循环查找最大人口,然后要求程序返回该单元格的名称 public ProvinceTerritory getHighestPopulation(){ int max = provinces.get(0).getPopulation(); for(Pro

返回类型为“ProvinceTerritory”。 哪个是类名 getPopulation()和getName()是ProvinceTerritory类中的访问器。 另外,省是包含所有城市及其人口的ArrayList的名称。我正在尝试使用forach循环查找最大人口,然后要求程序返回该单元格的名称

public ProvinceTerritory getHighestPopulation(){
int max = provinces.get(0).getPopulation();
for(ProvinceTerritory pt3 : provinces){
    if(pt3.getPopulation() > max){
        max = pt3.getPopulation();
    }

}
return ??;
}

您需要跟踪人口最多的省区,以便返回

public ProvinceTerritory getHighestPopulation(){
    int max = provinces.get(0).getPopulation();
    ProvinceTerritory result = provinces.get(0);
    for(ProvinceTerritory pt3 : provinces){
        if(pt3.getPopulation() > max){
            max = pt3.getPopulation();
            result = pt3;
        }
    }
    return result;
}

不要记住最大人口,记住具有最大人口的
ProvinceTerritory

public ProvinceTerritory getHighestPopulation() {
    ProvinceTerritory max = null;
    for (ProvinceTerritory pt3 : provinces)
        if (max == null || pt3.getPopulation() > max.getPopulation())
            max = pt3;
    return max;
}
或Java 8流版本:

public ProvinceTerritory getHighestPopulation() {
    return provinces.stream()
                    .max(Comparator.comparingInt(ProvinceTerritory::getPopulation))
                    .orElse(null);
}

您的
ProvinceTerritory
类是否有
name
属性或类似的属性?您的问题有点令人困惑。您想返回名称,但返回类型为
ProvinceTerritory
。无论哪种方法,只要在foreach循环之前声明一个变量,并在if语句中设置它,就像现在使用的
max
,然后返回该值。创建ProvinceTerritory的实例,并在条件匹配时更新,然后返回相同的值。@developi如果您可以发布
ProvinceTerritory
类您需要初始化
result
。编译错误:局部变量result可能尚未初始化假设该方法当问题询问该单元格的
名称时,应该返回一个字符串
您可能可以调用
Optional.get()
,考虑到OP调用的是
省。get(0)
@shmosel True,但我希望这里的两个版本的行为相同,所以我使第二个版本的行为与第一个相同。问题代码在空列表中抛出<代码>索引xObjFunExpRebug < /C>可能是无意的,即OP没有考虑这种情况。缺乏明确的行为使我的行为与众不同。;-)