2017-04-06 12 views
0

戻り値の型は "ProvinceTerritory"です。 クラス名 getPopulation()およびgetName()は、ProvinceTerritoryクラス内のアクセサです。 また、provincesはpopulationを持つすべての都市を含むArrayListの名前です.forachループを使用して最大の母集団を探し、そのセルの名前を返すようにプログラムに依頼しています。人口が最も高い都市名を返します

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

} 
return ??; 
} 
+0

があなたの 'ProvinceTerritory'クラスが持っているの'name'プロパティまたはそれに類するもの? –

+0

あなたの問題は少し混乱しています。あなたは名前を返すが、戻り値の型は 'ProvinceTerritory'です。いずれにしても、foreachループの前に変数を宣言し、if文の中で変数を宣言するだけです。これは 'max'を使用したときと同じように、その値を返します。 –

+0

ProvinceTerritoryのインスタンスを作成し、条件が一致したときに更新して同じものを返します。 –

答えて

0

最大の人口、最大の人口を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); 
} 
+0

メソッドが文字列を返すと仮定すると、そのセルの名前について質問します。 –

+0

OPが 'provinces.get(0)'を呼び出すことを考えると、おそらく 'Optional.get()'を呼び出すことができます。 – shmosel

+0

@shmosel真実ですが、ここでは2つのバージョンが*同じ*の動作をしたいので、2番目の動作を最初と同じようにしました。疑問符が空のリストに 'IndexOutOfBoundsException'を投げたという事実は意図されていない可能性が高い、すなわちOPは事例を考慮しなかった。 *定義された*動作の欠如は、私が異なった振る舞いをすることを可能にします。 ;-) – Andreas

0

あなたはそれを返すことができるように最高の人口を持ってProvinceTerritoryを追跡する必要があります。

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; 
} 
+0

' result'を初期化する必要があります。 – shmosel

+0

コンパイルエラー:*ローカル変数の結果が初期化されていない可能性があります。* – Andreas

+0

ありがとう、訂正しました –

関連する問題