-1
を使用して年齢層のほとんどの好きなスポーツ、好きなスポーツの年齢やリスト(水泳、ランニング、サイクリング、ボクシング、レスリング)トリッキー - 私は名前を持つPersonクラスを持っているラムダ
public class Person {
private String name;
private int age;
private List<String> favouriteSports;
public Person(String name, int age, List<String> favourites) {
this.name = name;
this.age = age;
this.favouriteSports= favourites;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
public List<String> getFavourites() {
return favouriteSports;
}
}
public class PersonManager {
private Map<String, Person> persons = new HashMap<>();
public void calculateMostFavouriteForAge(){
//1. Group all persons according to age
//2. Get count of favourite sports for every sport in that age group
//3. Store the age and the favourite sport in the age group in a Map.
}
}
PersonManagerが持っていますPerson名と対応するPersonオブジェクトの内部マップ。 私は、特定の年齢のすべての人に最も好きなアイテムを手に入れたいと思います。
私は100人(乱数)があり、20歳の年齢層に属する25人の人がいるとします.20歳の25人のうち、最も選んだスポーツを探しています。
どの年齢の地図値からすべての人にグループ分けし、その年齢層に最も好きなスポーツを保存するにはどうすればいいですか?
地図の値からすべての人を取得し、年齢の範囲で除算し、その年齢層の人々を横断して、すべてのスポーツが最も人気のあるスポーツを見つけます。あなたはあなたの最も好きなスポーツを持っています。 – Dominic
persons.entrySet()。stream()。collect(Collectors.groupingBy(Person :: getAge)); - グループ化しようとするとエラーが発生します。年齢に基づいて値オブジェクトをマップからグループ化する方法が不明です。 – megan
これは、https://docs.oracle.com/javase/8/docs/api/java/util/stream/Collectors.html に役立つかもしれません。または、for-eachループを使用して旧式の方法で行うことができます。 keySets – Dominic