前提・実現したいこと
JAVAのコレクションフレームワークにおいて、拡張for文とMath.maxを使用して最大値をだしたい。
目標「31歳が年長者です」と出力したい。
現在のコード
java
1import java.util.HashMap; 2import java.util.Map; 3import java.util.Map.Entry; 4 5public class MapPractice { 6 7 public static void main(String[] args) { 8 // TODO 自動生成されたメソッド・スタブ 9 10 Person sato = new Person("佐藤",22); 11 Person monzen = new Person("門前",22); 12 Person suzuki = new Person("鈴木",31); 13 14 Map<String,Integer> personMap = new HashMap<String,Integer>(); 15 16 personMap.put(sato.getName(),sato.getAge()); 17 personMap.put(monzen.getName(),monzen.getAge()); 18 personMap.put(suzuki.getName(),suzuki.getAge()); 19 20 for(Entry<String,Integer>entry:personMap.entrySet()) { 21 System.out.println(entry.getKey() + "は"+ entry.getValue()+"才"); 22 23 } 24 25 26 } 27 28}
わからないこと
java
1for(String key:personMap.keySet()) { 2 3 System.out.println(personMap.get(key)+"が年長者です。"); 4 }
において、すべての年齢の値を取得はできたが、Math.maxをここにどう組み合わせばいいのかがよく理解できていません。
Math.maxは値を2つ以上用意する必要がある。
⇒値を3つ取得しがそこからどう、Math.Min(a, Math.Min(b, c)))につなげたらいいのかがよくわかっていません。
ヒントや考え方等を教えていただけると幸いです。
ソースは、以下のように囲むと見やすくなります。
```java
ここにソースを書く
```
【参考】
対応しているMarkdownの記法を知りたい
https://teratail.com/help#about-markdown
ご指摘ありがとうございます。質問の修正をすることができました。次からMarkdownでよりわかりやすくかけるように頑張ります。
ちょっとうまくいってないので LouiS0616 さんの回答の「コードの貼り方について」も参考にしてください。
```java
ここにソースを書く
```
「ここにソースを書く」の部分にソースコードを入れます。
```java
import java.util.Map;
import java.util.Map.Entry;
import java.lang.Math;
public class MapPractice {
public static void main(String[] args) {
int maxAge = 0;
String senior = "";
Person sato = new Person("佐藤", 22);
Person monzen = new Person("門前", 22);
Person suzuki = new Person("鈴木", 31);
Map<String, Integer> personMap = new HashMap<String, Integer>();
personMap.put(sato.getName(), sato.getAge());
personMap.put(monzen.getName(), monzen.getAge());
personMap.put(suzuki.getName(), suzuki.getAge());
for (Entry<String, Integer> entry : personMap.entrySet()) {
System.out.println(entry.getKey() + "は" + entry.getValue() + "才");
maxAge = Math.max(maxAge, entry.getValue());
if (maxAge == entry.getValue()) {
senior = entry.getKey();
}
}
System.out.println(String.format("%s が年長者です。", senior));
}
}
```
回答1件
あなたの回答
tips
プレビュー