[JAVA] Trouvez l'âge moyen dans la liste <Personne>.

Table des matières ⇒ Java Algorithm Library-Artery-Sample

Q01_07.java



package jp.avaj.lib.algo;

import java.util.ArrayList;
import java.util.List;

import jp.avaj.lib.test.L;

/**
 *  List<Person>Trouvez l'âge moyen de.
 *
 *・ Données cibles de la personne(âge)Vous devez définir ArCreator pour récupérer.
 *-Dans la première méthode, la méthode convert est implémentée pour extraire l'âge..
 *-Cependant, cette méthode est gênante car une implémentation est créée pour chaque champ à extraire..
 *-Dans la deuxième méthode, un ArCreatorByName à usage général est créé et le nom du champ est spécifié..
 *・ Il est possible d'empêcher le nombre d'implémentations d'ArCreator d'augmenter inutilement..
 *
 */
public class Q01_07 {
  public static void main(String[] args) throws Exception {
    List<Person> list = createList();

    //Définition d'ArCreator-Première voie
    ArCreator<Person,Integer> creator = new ArCreator<Person,Integer>() {
      @Override
      public Integer convert(Person obj) throws Exception {
        return obj.getAge();
      }
    };
    //Trouvez la valeur moyenne
    L.p(ArList.avg(list,creator)+"");

    //Définition d'ArCreator-Deuxième méthode
    creator = new ArCreatorByName<Person,Integer>("age");
    //Trouvez la valeur moyenne
    L.p(ArList.avg(list,creator)+"");
  }

  /**Créer des informations personnelles*/
  private static List<Person> createList() {
    List<Person> list = new ArrayList<Person>();
    list.add(new Person("a",25));
    list.add(new Person("b",30));
    list.add(new Person("c",28));
    list.add(new Person("d",22));
    list.add(new Person("e",38));
    return list;
  }

  /**Classe d'informations personnelles(Seulement le nom et l'âge..) */
  static class Person {
    public Person(String name,int age) {
      this.name = name;
      this.age = age;
    }
    private String name;
    private int age;
    public String getName() {
      return name;
    }
    public void setName(String name) {
      this.name = name;
    }
    public int getAge() {
      return age;
    }
    public void setAge(int age) {
      this.age = age;
    }
  }
}


Le résultat est le suivant.

result.txt



28.6
28.6

Recommended Posts

Trouvez l'âge moyen dans la liste <Personne>.
Agréger le nombre de personnes tous les 10 ans à partir de la liste <Personne>
Trouvez la différence entre les types de liste
Trouvez la différence à partir d'un multiple de 10
Trouvez le masque de sous-réseau à partir de la longueur du préfixe réseau
Comment trouver le score total et le score moyen
ArrayList et le rôle de l'interface vu depuis List
Extraire un élément spécifique de la liste des objets
Trouvez la classe d'adresse et le type d'adresse à partir de l'adresse IP avec Java