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