Java 返回人口最多的城市名称
返回类型为“ProvinceTerritory”。 哪个是类名 getPopulation()和getName()是ProvinceTerritory类中的访问器。 另外,省是包含所有城市及其人口的ArrayList的名称。我正在尝试使用forach循环查找最大人口,然后要求程序返回该单元格的名称Java 返回人口最多的城市名称,java,arraylist,Java,Arraylist,返回类型为“ProvinceTerritory”。 哪个是类名 getPopulation()和getName()是ProvinceTerritory类中的访问器。 另外,省是包含所有城市及其人口的ArrayList的名称。我正在尝试使用forach循环查找最大人口,然后要求程序返回该单元格的名称 public ProvinceTerritory getHighestPopulation(){ int max = provinces.get(0).getPopulation(); for(Pro
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没有考虑这种情况。缺乏明确的行为使我的行为与众不同。;-)